#[allow(unused_imports)]
use crate::objc::*;
#[allow(unused_imports)]
use crate::AddressBook::*;
#[allow(unused_imports)]
use crate::CloudKit::*;
#[allow(unused_imports)]
use crate::CoreData::*;
#[allow(unused_imports)]
use crate::CoreFoundation::*;
#[allow(unused_imports)]
use crate::CoreGraphics::*;
#[allow(unused_imports)]
use crate::CoreImage::*;
#[allow(unused_imports)]
use crate::Foundation::*;
#[allow(unused_imports)]
use crate::Intents::*;
#[allow(unused_imports)]
use crate::OpenGL::*;
#[allow(unused_imports)]
use crate::QuartzCore::*;
#[allow(unused_imports)]
use crate::UniformTypeIdentifiers::*;
#[allow(unused_imports)]
use libc::{id_t, pid_t, size_t};

#[allow(unused_imports)]
use objc2::msg_send;
pub type NSCompositingOperation = NSUInteger;
pub type NSBackingStoreType = NSUInteger;
pub type NSWindowOrderingMode = NSInteger;
pub type NSFocusRingPlacement = NSUInteger;
pub type NSFocusRingType = NSUInteger;
pub type NSColorRenderingIntent = NSInteger;
pub type NSWindowDepth = i32;
pub type NSDisplayGamut = NSInteger;
pub type NSDeviceDescriptionKey = NSString;
pub type NSAnimationEffect = NSUInteger;
pub type NSGraphicsContextAttributeKey = NSString;
pub type NSGraphicsContextRepresentationFormatName = NSString;
pub type NSImageInterpolation = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGraphicsContext(pub id);
impl std::ops::Deref for NSGraphicsContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGraphicsContext {}
impl NSGraphicsContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), alloc) })
    }
}
impl INSObject for NSGraphicsContext {}
impl PNSObject for NSGraphicsContext {}
impl std::convert::TryFrom<NSObject> for NSGraphicsContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGraphicsContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap()) };
        if is_kind_of {
            Ok(NSGraphicsContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGraphicsContext")
        }
    }
}
impl INSGraphicsContext for NSGraphicsContext {}
pub trait INSGraphicsContext: Sized + std::ops::Deref {
    unsafe fn saveGraphicsState(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, saveGraphicsState)
    }
    unsafe fn restoreGraphicsState(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, restoreGraphicsState)
    }
    unsafe fn flushGraphics(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flushGraphics)
    }
    unsafe fn attributes(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributes)
    }
    unsafe fn isDrawingToScreen(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDrawingToScreen)
    }
    unsafe fn CGContext(&self) -> CGContextRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGContext)
    }
    unsafe fn isFlipped(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFlipped)
    }
    unsafe fn graphicsContextWithAttributes_(attributes: NSDictionary) -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), graphicsContextWithAttributes : attributes)
    }
    unsafe fn graphicsContextWithBitmapImageRep_(bitmapRep: NSBitmapImageRep) -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), graphicsContextWithBitmapImageRep : bitmapRep)
    }
    unsafe fn graphicsContextWithCGContext_flipped_(
        graphicsPort: CGContextRef,
        initialFlippedState: BOOL,
    ) -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), graphicsContextWithCGContext : graphicsPort, flipped : initialFlippedState)
    }
    unsafe fn currentContextDrawingToScreen() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), currentContextDrawingToScreen)
    }
    unsafe fn class_saveGraphicsState()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), saveGraphicsState)
    }
    unsafe fn class_restoreGraphicsState()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), restoreGraphicsState)
    }
    unsafe fn currentContext() -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), currentContext)
    }
    unsafe fn setCurrentContext_(currentContext: NSGraphicsContext)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGraphicsContext").unwrap(), setCurrentContext : currentContext)
    }
}
impl NSGraphicsContext_NSGraphicsContext_RenderingOptions for NSGraphicsContext {}
impl NSGraphicsContext_NSQuartzCoreAdditions for NSGraphicsContext {}
impl NSGraphicsContext_NSGraphicsContextDeprecated for NSGraphicsContext {}
pub type NSAccessibilityAttributeName = NSString;
pub type NSAccessibilityParameterizedAttributeName = NSString;
pub type NSAccessibilityAnnotationAttributeKey = NSString;
pub type NSAccessibilityAnnotationPosition = NSInteger;
pub type NSAccessibilityFontAttributeKey = NSString;
pub type NSAccessibilityOrientation = NSInteger;
pub type NSAccessibilityOrientationValue = NSString;
pub type NSAccessibilitySortDirectionValue = NSString;
pub type NSAccessibilitySortDirection = NSInteger;
pub type NSAccessibilityRulerMarkerTypeValue = NSString;
pub type NSAccessibilityRulerMarkerType = NSInteger;
pub type NSAccessibilityRulerUnitValue = NSString;
pub type NSAccessibilityUnits = NSInteger;
pub type NSAccessibilityActionName = NSString;
pub type NSAccessibilityNotificationName = NSString;
pub type NSAccessibilityNotificationUserInfoKey = NSString;
pub type NSAccessibilityPriorityLevel = NSInteger;
pub type NSAccessibilityLoadingToken = *mut u64;
pub type NSAccessibilitySearchKey = NSString;
pub type NSAccessibilityDateTimeComponentsFlags = NSUInteger;
pub trait PNSAccessibilityElement: Sized + std::ops::Deref {
    unsafe fn accessibilityFrame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFrame)
    }
    unsafe fn accessibilityParent(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityParent)
    }
    unsafe fn isAccessibilityFocused(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityFocused)
    }
    unsafe fn accessibilityIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityIdentifier)
    }
}
pub trait PNSAccessibilityGroup: Sized + std::ops::Deref {}
pub trait PNSAccessibilityButton: Sized + std::ops::Deref {
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
    unsafe fn accessibilityPerformPress(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformPress)
    }
}
pub trait PNSAccessibilitySwitch: Sized + std::ops::Deref {
    unsafe fn accessibilityValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
    unsafe fn accessibilityPerformIncrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformIncrement)
    }
    unsafe fn accessibilityPerformDecrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformDecrement)
    }
}
pub trait PNSAccessibilityRadioButton: Sized + std::ops::Deref {
    unsafe fn accessibilityValue(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
}
pub trait PNSAccessibilityCheckBox: Sized + std::ops::Deref {
    unsafe fn accessibilityValue(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
}
pub trait PNSAccessibilityStaticText: Sized + std::ops::Deref {
    unsafe fn accessibilityValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
    unsafe fn accessibilityAttributedStringForRange_(&self, range: NSRange) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityAttributedStringForRange : range)
    }
    unsafe fn accessibilityVisibleCharacterRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleCharacterRange)
    }
}
pub trait PNSAccessibilityNavigableStaticText: Sized + std::ops::Deref {
    unsafe fn accessibilityStringForRange_(&self, range: NSRange) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityStringForRange : range)
    }
    unsafe fn accessibilityLineForIndex_(&self, index: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityLineForIndex : index)
    }
    unsafe fn accessibilityRangeForLine_(&self, lineNumber: NSInteger) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityRangeForLine : lineNumber)
    }
    unsafe fn accessibilityFrameForRange_(&self, range: NSRange) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityFrameForRange : range)
    }
}
pub trait PNSAccessibilityProgressIndicator: Sized + std::ops::Deref {
    unsafe fn accessibilityValue(&self) -> NSNumber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
}
pub trait PNSAccessibilityStepper: Sized + std::ops::Deref {
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
    unsafe fn accessibilityPerformIncrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformIncrement)
    }
    unsafe fn accessibilityPerformDecrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformDecrement)
    }
    unsafe fn accessibilityValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
}
pub trait PNSAccessibilitySlider: Sized + std::ops::Deref {
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
    unsafe fn accessibilityValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
    unsafe fn accessibilityPerformIncrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformIncrement)
    }
    unsafe fn accessibilityPerformDecrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformDecrement)
    }
}
pub trait PNSAccessibilityImage: Sized + std::ops::Deref {
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
}
pub trait PNSAccessibilityContainsTransientUI: Sized + std::ops::Deref {
    unsafe fn accessibilityPerformShowAlternateUI(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformShowAlternateUI)
    }
    unsafe fn accessibilityPerformShowDefaultUI(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformShowDefaultUI)
    }
    unsafe fn isAccessibilityAlternateUIVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityAlternateUIVisible)
    }
}
pub trait PNSAccessibilityTable: Sized + std::ops::Deref {
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
    unsafe fn accessibilityRows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRows)
    }
    unsafe fn accessibilitySelectedRows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedRows)
    }
    unsafe fn setAccessibilitySelectedRows_(&self, selectedRows: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedRows : selectedRows)
    }
    unsafe fn accessibilityVisibleRows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleRows)
    }
    unsafe fn accessibilityColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumns)
    }
    unsafe fn accessibilityVisibleColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleColumns)
    }
    unsafe fn accessibilitySelectedColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedColumns)
    }
    unsafe fn accessibilityHeaderGroup(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHeaderGroup)
    }
    unsafe fn accessibilitySelectedCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedCells)
    }
    unsafe fn accessibilityVisibleCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleCells)
    }
    unsafe fn accessibilityRowHeaderUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRowHeaderUIElements)
    }
    unsafe fn accessibilityColumnHeaderUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumnHeaderUIElements)
    }
}
pub trait PNSAccessibilityOutline: Sized + std::ops::Deref {}
pub trait PNSAccessibilityList: Sized + std::ops::Deref {}
pub trait PNSAccessibilityRow: Sized + std::ops::Deref {
    unsafe fn accessibilityIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityIndex)
    }
    unsafe fn accessibilityDisclosureLevel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDisclosureLevel)
    }
}
pub trait PNSAccessibilityLayoutArea: Sized + std::ops::Deref {
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
    unsafe fn accessibilityChildren(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityChildren)
    }
    unsafe fn accessibilitySelectedChildren(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedChildren)
    }
    unsafe fn accessibilityFocusedUIElement(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFocusedUIElement)
    }
}
pub trait PNSAccessibilityLayoutItem: Sized + std::ops::Deref {
    unsafe fn setAccessibilityFrame_(&self, frame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFrame : frame)
    }
}
pub trait PNSAccessibility: Sized + std::ops::Deref {
    unsafe fn accessibilityLayoutPointForScreenPoint_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityLayoutPointForScreenPoint : point)
    }
    unsafe fn accessibilityLayoutSizeForScreenSize_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityLayoutSizeForScreenSize : size)
    }
    unsafe fn accessibilityScreenPointForLayoutPoint_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityScreenPointForLayoutPoint : point)
    }
    unsafe fn accessibilityScreenSizeForLayoutSize_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityScreenSizeForLayoutSize : size)
    }
    unsafe fn accessibilityCellForColumn_row_(&self, column: NSInteger, row: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityCellForColumn : column, row : row)
    }
    unsafe fn accessibilityAttributedStringForRange_(&self, range: NSRange) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityAttributedStringForRange : range)
    }
    unsafe fn accessibilityRangeForLine_(&self, line: NSInteger) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityRangeForLine : line)
    }
    unsafe fn accessibilityStringForRange_(&self, range: NSRange) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityStringForRange : range)
    }
    unsafe fn accessibilityRangeForPosition_(&self, point: NSPoint) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityRangeForPosition : point)
    }
    unsafe fn accessibilityRangeForIndex_(&self, index: NSInteger) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityRangeForIndex : index)
    }
    unsafe fn accessibilityFrameForRange_(&self, range: NSRange) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityFrameForRange : range)
    }
    unsafe fn accessibilityRTFForRange_(&self, range: NSRange) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityRTFForRange : range)
    }
    unsafe fn accessibilityStyleRangeForIndex_(&self, index: NSInteger) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityStyleRangeForIndex : index)
    }
    unsafe fn accessibilityLineForIndex_(&self, index: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityLineForIndex : index)
    }
    unsafe fn accessibilityPerformCancel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformCancel)
    }
    unsafe fn accessibilityPerformConfirm(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformConfirm)
    }
    unsafe fn accessibilityPerformDecrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformDecrement)
    }
    unsafe fn accessibilityPerformDelete(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformDelete)
    }
    unsafe fn accessibilityPerformIncrement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformIncrement)
    }
    unsafe fn accessibilityPerformPick(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformPick)
    }
    unsafe fn accessibilityPerformPress(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformPress)
    }
    unsafe fn accessibilityPerformRaise(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformRaise)
    }
    unsafe fn accessibilityPerformShowAlternateUI(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformShowAlternateUI)
    }
    unsafe fn accessibilityPerformShowDefaultUI(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformShowDefaultUI)
    }
    unsafe fn accessibilityPerformShowMenu(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPerformShowMenu)
    }
    unsafe fn isAccessibilitySelectorAllowed_(&self, selector: objc2::runtime::Sel) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isAccessibilitySelectorAllowed : selector)
    }
    unsafe fn isAccessibilityElement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityElement)
    }
    unsafe fn setAccessibilityElement_(&self, accessibilityElement: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityElement : accessibilityElement)
    }
    unsafe fn accessibilityFrame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFrame)
    }
    unsafe fn setAccessibilityFrame_(&self, accessibilityFrame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFrame : accessibilityFrame)
    }
    unsafe fn isAccessibilityFocused(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityFocused)
    }
    unsafe fn setAccessibilityFocused_(&self, accessibilityFocused: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFocused : accessibilityFocused)
    }
    unsafe fn accessibilityActivationPoint(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityActivationPoint)
    }
    unsafe fn setAccessibilityActivationPoint_(&self, accessibilityActivationPoint: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityActivationPoint : accessibilityActivationPoint)
    }
    unsafe fn accessibilityTopLevelUIElement(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityTopLevelUIElement)
    }
    unsafe fn setAccessibilityTopLevelUIElement_(&self, accessibilityTopLevelUIElement: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityTopLevelUIElement : accessibilityTopLevelUIElement)
    }
    unsafe fn accessibilityURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityURL)
    }
    unsafe fn setAccessibilityURL_(&self, accessibilityURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityURL : accessibilityURL)
    }
    unsafe fn accessibilityValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValue)
    }
    unsafe fn setAccessibilityValue_(&self, accessibilityValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityValue : accessibilityValue)
    }
    unsafe fn accessibilityValueDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityValueDescription)
    }
    unsafe fn setAccessibilityValueDescription_(&self, accessibilityValueDescription: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityValueDescription : accessibilityValueDescription)
    }
    unsafe fn accessibilityVisibleChildren(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleChildren)
    }
    unsafe fn setAccessibilityVisibleChildren_(&self, accessibilityVisibleChildren: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVisibleChildren : accessibilityVisibleChildren)
    }
    unsafe fn accessibilitySubrole(&self) -> NSAccessibilitySubrole
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySubrole)
    }
    unsafe fn setAccessibilitySubrole_(&self, accessibilitySubrole: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySubrole : accessibilitySubrole)
    }
    unsafe fn accessibilityTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityTitle)
    }
    unsafe fn setAccessibilityTitle_(&self, accessibilityTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityTitle : accessibilityTitle)
    }
    unsafe fn accessibilityTitleUIElement(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityTitleUIElement)
    }
    unsafe fn setAccessibilityTitleUIElement_(&self, accessibilityTitleUIElement: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityTitleUIElement : accessibilityTitleUIElement)
    }
    unsafe fn accessibilityNextContents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityNextContents)
    }
    unsafe fn setAccessibilityNextContents_(&self, accessibilityNextContents: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityNextContents : accessibilityNextContents)
    }
    unsafe fn accessibilityOrientation(&self) -> NSAccessibilityOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityOrientation)
    }
    unsafe fn setAccessibilityOrientation_(
        &self,
        accessibilityOrientation: NSAccessibilityOrientation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityOrientation : accessibilityOrientation)
    }
    unsafe fn accessibilityOverflowButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityOverflowButton)
    }
    unsafe fn setAccessibilityOverflowButton_(&self, accessibilityOverflowButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityOverflowButton : accessibilityOverflowButton)
    }
    unsafe fn accessibilityParent(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityParent)
    }
    unsafe fn setAccessibilityParent_(&self, accessibilityParent: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityParent : accessibilityParent)
    }
    unsafe fn accessibilityPlaceholderValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPlaceholderValue)
    }
    unsafe fn setAccessibilityPlaceholderValue_(&self, accessibilityPlaceholderValue: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityPlaceholderValue : accessibilityPlaceholderValue)
    }
    unsafe fn accessibilityPreviousContents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityPreviousContents)
    }
    unsafe fn setAccessibilityPreviousContents_(&self, accessibilityPreviousContents: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityPreviousContents : accessibilityPreviousContents)
    }
    unsafe fn accessibilityRole(&self) -> NSAccessibilityRole
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRole)
    }
    unsafe fn setAccessibilityRole_(&self, accessibilityRole: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRole : accessibilityRole)
    }
    unsafe fn accessibilityRoleDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRoleDescription)
    }
    unsafe fn setAccessibilityRoleDescription_(&self, accessibilityRoleDescription: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRoleDescription : accessibilityRoleDescription)
    }
    unsafe fn accessibilitySearchButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySearchButton)
    }
    unsafe fn setAccessibilitySearchButton_(&self, accessibilitySearchButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySearchButton : accessibilitySearchButton)
    }
    unsafe fn accessibilitySearchMenu(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySearchMenu)
    }
    unsafe fn setAccessibilitySearchMenu_(&self, accessibilitySearchMenu: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySearchMenu : accessibilitySearchMenu)
    }
    unsafe fn isAccessibilitySelected(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilitySelected)
    }
    unsafe fn setAccessibilitySelected_(&self, accessibilitySelected: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelected : accessibilitySelected)
    }
    unsafe fn accessibilitySelectedChildren(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedChildren)
    }
    unsafe fn setAccessibilitySelectedChildren_(&self, accessibilitySelectedChildren: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedChildren : accessibilitySelectedChildren)
    }
    unsafe fn accessibilityServesAsTitleForUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityServesAsTitleForUIElements)
    }
    unsafe fn setAccessibilityServesAsTitleForUIElements_(
        &self,
        accessibilityServesAsTitleForUIElements: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityServesAsTitleForUIElements : accessibilityServesAsTitleForUIElements)
    }
    unsafe fn accessibilityShownMenu(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityShownMenu)
    }
    unsafe fn setAccessibilityShownMenu_(&self, accessibilityShownMenu: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityShownMenu : accessibilityShownMenu)
    }
    unsafe fn accessibilityMinValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMinValue)
    }
    unsafe fn setAccessibilityMinValue_(&self, accessibilityMinValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMinValue : accessibilityMinValue)
    }
    unsafe fn accessibilityMaxValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMaxValue)
    }
    unsafe fn setAccessibilityMaxValue_(&self, accessibilityMaxValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMaxValue : accessibilityMaxValue)
    }
    unsafe fn accessibilityLinkedUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLinkedUIElements)
    }
    unsafe fn setAccessibilityLinkedUIElements_(&self, accessibilityLinkedUIElements: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityLinkedUIElements : accessibilityLinkedUIElements)
    }
    unsafe fn accessibilityWindow(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityWindow)
    }
    unsafe fn setAccessibilityWindow_(&self, accessibilityWindow: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityWindow : accessibilityWindow)
    }
    unsafe fn accessibilityIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityIdentifier)
    }
    unsafe fn setAccessibilityIdentifier_(&self, accessibilityIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityIdentifier : accessibilityIdentifier)
    }
    unsafe fn accessibilityHelp(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHelp)
    }
    unsafe fn setAccessibilityHelp_(&self, accessibilityHelp: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHelp : accessibilityHelp)
    }
    unsafe fn accessibilityFilename(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFilename)
    }
    unsafe fn setAccessibilityFilename_(&self, accessibilityFilename: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFilename : accessibilityFilename)
    }
    unsafe fn isAccessibilityExpanded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityExpanded)
    }
    unsafe fn setAccessibilityExpanded_(&self, accessibilityExpanded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityExpanded : accessibilityExpanded)
    }
    unsafe fn isAccessibilityEdited(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityEdited)
    }
    unsafe fn setAccessibilityEdited_(&self, accessibilityEdited: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityEdited : accessibilityEdited)
    }
    unsafe fn isAccessibilityEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityEnabled)
    }
    unsafe fn setAccessibilityEnabled_(&self, accessibilityEnabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityEnabled : accessibilityEnabled)
    }
    unsafe fn accessibilityChildren(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityChildren)
    }
    unsafe fn setAccessibilityChildren_(&self, accessibilityChildren: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityChildren : accessibilityChildren)
    }
    unsafe fn accessibilityChildrenInNavigationOrder(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityChildrenInNavigationOrder)
    }
    unsafe fn setAccessibilityChildrenInNavigationOrder_(
        &self,
        accessibilityChildrenInNavigationOrder: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityChildrenInNavigationOrder : accessibilityChildrenInNavigationOrder)
    }
    unsafe fn accessibilityClearButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityClearButton)
    }
    unsafe fn setAccessibilityClearButton_(&self, accessibilityClearButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityClearButton : accessibilityClearButton)
    }
    unsafe fn accessibilityCancelButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityCancelButton)
    }
    unsafe fn setAccessibilityCancelButton_(&self, accessibilityCancelButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityCancelButton : accessibilityCancelButton)
    }
    unsafe fn isAccessibilityProtectedContent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityProtectedContent)
    }
    unsafe fn setAccessibilityProtectedContent_(&self, accessibilityProtectedContent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityProtectedContent : accessibilityProtectedContent)
    }
    unsafe fn accessibilityContents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityContents)
    }
    unsafe fn setAccessibilityContents_(&self, accessibilityContents: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityContents : accessibilityContents)
    }
    unsafe fn accessibilityLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabel)
    }
    unsafe fn setAccessibilityLabel_(&self, accessibilityLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityLabel : accessibilityLabel)
    }
    unsafe fn isAccessibilityAlternateUIVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityAlternateUIVisible)
    }
    unsafe fn setAccessibilityAlternateUIVisible_(&self, accessibilityAlternateUIVisible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityAlternateUIVisible : accessibilityAlternateUIVisible)
    }
    unsafe fn accessibilitySharedFocusElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySharedFocusElements)
    }
    unsafe fn setAccessibilitySharedFocusElements_(&self, accessibilitySharedFocusElements: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySharedFocusElements : accessibilitySharedFocusElements)
    }
    unsafe fn isAccessibilityRequired(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityRequired)
    }
    unsafe fn setAccessibilityRequired_(&self, accessibilityRequired: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRequired : accessibilityRequired)
    }
    unsafe fn accessibilityCustomRotors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityCustomRotors)
    }
    unsafe fn setAccessibilityCustomRotors_(&self, accessibilityCustomRotors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityCustomRotors : accessibilityCustomRotors)
    }
    unsafe fn accessibilityUserInputLabels(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityUserInputLabels)
    }
    unsafe fn setAccessibilityUserInputLabels_(&self, accessibilityUserInputLabels: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityUserInputLabels : accessibilityUserInputLabels)
    }
    unsafe fn accessibilityAttributedUserInputLabels(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityAttributedUserInputLabels)
    }
    unsafe fn setAccessibilityAttributedUserInputLabels_(
        &self,
        accessibilityAttributedUserInputLabels: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityAttributedUserInputLabels : accessibilityAttributedUserInputLabels)
    }
    unsafe fn accessibilityApplicationFocusedUIElement(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityApplicationFocusedUIElement)
    }
    unsafe fn setAccessibilityApplicationFocusedUIElement_(
        &self,
        accessibilityApplicationFocusedUIElement: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityApplicationFocusedUIElement : accessibilityApplicationFocusedUIElement)
    }
    unsafe fn accessibilityMainWindow(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMainWindow)
    }
    unsafe fn setAccessibilityMainWindow_(&self, accessibilityMainWindow: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMainWindow : accessibilityMainWindow)
    }
    unsafe fn isAccessibilityHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityHidden)
    }
    unsafe fn setAccessibilityHidden_(&self, accessibilityHidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHidden : accessibilityHidden)
    }
    unsafe fn isAccessibilityFrontmost(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityFrontmost)
    }
    unsafe fn setAccessibilityFrontmost_(&self, accessibilityFrontmost: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFrontmost : accessibilityFrontmost)
    }
    unsafe fn accessibilityFocusedWindow(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFocusedWindow)
    }
    unsafe fn setAccessibilityFocusedWindow_(&self, accessibilityFocusedWindow: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFocusedWindow : accessibilityFocusedWindow)
    }
    unsafe fn accessibilityWindows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityWindows)
    }
    unsafe fn setAccessibilityWindows_(&self, accessibilityWindows: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityWindows : accessibilityWindows)
    }
    unsafe fn accessibilityExtrasMenuBar(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityExtrasMenuBar)
    }
    unsafe fn setAccessibilityExtrasMenuBar_(&self, accessibilityExtrasMenuBar: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityExtrasMenuBar : accessibilityExtrasMenuBar)
    }
    unsafe fn accessibilityMenuBar(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMenuBar)
    }
    unsafe fn setAccessibilityMenuBar_(&self, accessibilityMenuBar: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMenuBar : accessibilityMenuBar)
    }
    unsafe fn accessibilityColumnTitles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumnTitles)
    }
    unsafe fn setAccessibilityColumnTitles_(&self, accessibilityColumnTitles: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityColumnTitles : accessibilityColumnTitles)
    }
    unsafe fn isAccessibilityOrderedByRow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityOrderedByRow)
    }
    unsafe fn setAccessibilityOrderedByRow_(&self, accessibilityOrderedByRow: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityOrderedByRow : accessibilityOrderedByRow)
    }
    unsafe fn accessibilityHorizontalUnits(&self) -> NSAccessibilityUnits
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHorizontalUnits)
    }
    unsafe fn setAccessibilityHorizontalUnits_(
        &self,
        accessibilityHorizontalUnits: NSAccessibilityUnits,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHorizontalUnits : accessibilityHorizontalUnits)
    }
    unsafe fn accessibilityVerticalUnits(&self) -> NSAccessibilityUnits
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVerticalUnits)
    }
    unsafe fn setAccessibilityVerticalUnits_(
        &self,
        accessibilityVerticalUnits: NSAccessibilityUnits,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVerticalUnits : accessibilityVerticalUnits)
    }
    unsafe fn accessibilityHorizontalUnitDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHorizontalUnitDescription)
    }
    unsafe fn setAccessibilityHorizontalUnitDescription_(
        &self,
        accessibilityHorizontalUnitDescription: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHorizontalUnitDescription : accessibilityHorizontalUnitDescription)
    }
    unsafe fn accessibilityVerticalUnitDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVerticalUnitDescription)
    }
    unsafe fn setAccessibilityVerticalUnitDescription_(
        &self,
        accessibilityVerticalUnitDescription: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVerticalUnitDescription : accessibilityVerticalUnitDescription)
    }
    unsafe fn accessibilityHandles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHandles)
    }
    unsafe fn setAccessibilityHandles_(&self, accessibilityHandles: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHandles : accessibilityHandles)
    }
    unsafe fn accessibilityWarningValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityWarningValue)
    }
    unsafe fn setAccessibilityWarningValue_(&self, accessibilityWarningValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityWarningValue : accessibilityWarningValue)
    }
    unsafe fn accessibilityCriticalValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityCriticalValue)
    }
    unsafe fn setAccessibilityCriticalValue_(&self, accessibilityCriticalValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityCriticalValue : accessibilityCriticalValue)
    }
    unsafe fn isAccessibilityDisclosed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityDisclosed)
    }
    unsafe fn setAccessibilityDisclosed_(&self, accessibilityDisclosed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDisclosed : accessibilityDisclosed)
    }
    unsafe fn accessibilityDisclosedByRow(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDisclosedByRow)
    }
    unsafe fn setAccessibilityDisclosedByRow_(&self, accessibilityDisclosedByRow: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDisclosedByRow : accessibilityDisclosedByRow)
    }
    unsafe fn accessibilityDisclosedRows(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDisclosedRows)
    }
    unsafe fn setAccessibilityDisclosedRows_(&self, accessibilityDisclosedRows: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDisclosedRows : accessibilityDisclosedRows)
    }
    unsafe fn accessibilityDisclosureLevel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDisclosureLevel)
    }
    unsafe fn setAccessibilityDisclosureLevel_(&self, accessibilityDisclosureLevel: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDisclosureLevel : accessibilityDisclosureLevel)
    }
    unsafe fn accessibilityMarkerUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMarkerUIElements)
    }
    unsafe fn setAccessibilityMarkerUIElements_(&self, accessibilityMarkerUIElements: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMarkerUIElements : accessibilityMarkerUIElements)
    }
    unsafe fn accessibilityMarkerValues(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMarkerValues)
    }
    unsafe fn setAccessibilityMarkerValues_(&self, accessibilityMarkerValues: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMarkerValues : accessibilityMarkerValues)
    }
    unsafe fn accessibilityMarkerGroupUIElement(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMarkerGroupUIElement)
    }
    unsafe fn setAccessibilityMarkerGroupUIElement_(&self, accessibilityMarkerGroupUIElement: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMarkerGroupUIElement : accessibilityMarkerGroupUIElement)
    }
    unsafe fn accessibilityUnits(&self) -> NSAccessibilityUnits
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityUnits)
    }
    unsafe fn setAccessibilityUnits_(&self, accessibilityUnits: NSAccessibilityUnits)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityUnits : accessibilityUnits)
    }
    unsafe fn accessibilityUnitDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityUnitDescription)
    }
    unsafe fn setAccessibilityUnitDescription_(&self, accessibilityUnitDescription: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityUnitDescription : accessibilityUnitDescription)
    }
    unsafe fn accessibilityRulerMarkerType(&self) -> NSAccessibilityRulerMarkerType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRulerMarkerType)
    }
    unsafe fn setAccessibilityRulerMarkerType_(
        &self,
        accessibilityRulerMarkerType: NSAccessibilityRulerMarkerType,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRulerMarkerType : accessibilityRulerMarkerType)
    }
    unsafe fn accessibilityMarkerTypeDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMarkerTypeDescription)
    }
    unsafe fn setAccessibilityMarkerTypeDescription_(
        &self,
        accessibilityMarkerTypeDescription: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMarkerTypeDescription : accessibilityMarkerTypeDescription)
    }
    unsafe fn accessibilityHorizontalScrollBar(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHorizontalScrollBar)
    }
    unsafe fn setAccessibilityHorizontalScrollBar_(&self, accessibilityHorizontalScrollBar: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHorizontalScrollBar : accessibilityHorizontalScrollBar)
    }
    unsafe fn accessibilityVerticalScrollBar(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVerticalScrollBar)
    }
    unsafe fn setAccessibilityVerticalScrollBar_(&self, accessibilityVerticalScrollBar: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVerticalScrollBar : accessibilityVerticalScrollBar)
    }
    unsafe fn accessibilityAllowedValues(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityAllowedValues)
    }
    unsafe fn setAccessibilityAllowedValues_(&self, accessibilityAllowedValues: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityAllowedValues : accessibilityAllowedValues)
    }
    unsafe fn accessibilityLabelUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabelUIElements)
    }
    unsafe fn setAccessibilityLabelUIElements_(&self, accessibilityLabelUIElements: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityLabelUIElements : accessibilityLabelUIElements)
    }
    unsafe fn accessibilityLabelValue(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityLabelValue)
    }
    unsafe fn setAccessibilityLabelValue_(&self, accessibilityLabelValue: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityLabelValue : accessibilityLabelValue)
    }
    unsafe fn accessibilitySplitters(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySplitters)
    }
    unsafe fn setAccessibilitySplitters_(&self, accessibilitySplitters: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySplitters : accessibilitySplitters)
    }
    unsafe fn accessibilityDecrementButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDecrementButton)
    }
    unsafe fn setAccessibilityDecrementButton_(&self, accessibilityDecrementButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDecrementButton : accessibilityDecrementButton)
    }
    unsafe fn accessibilityIncrementButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityIncrementButton)
    }
    unsafe fn setAccessibilityIncrementButton_(&self, accessibilityIncrementButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityIncrementButton : accessibilityIncrementButton)
    }
    unsafe fn accessibilityTabs(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityTabs)
    }
    unsafe fn setAccessibilityTabs_(&self, accessibilityTabs: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityTabs : accessibilityTabs)
    }
    unsafe fn accessibilityHeader(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityHeader)
    }
    unsafe fn setAccessibilityHeader_(&self, accessibilityHeader: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityHeader : accessibilityHeader)
    }
    unsafe fn accessibilityColumnCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumnCount)
    }
    unsafe fn setAccessibilityColumnCount_(&self, accessibilityColumnCount: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityColumnCount : accessibilityColumnCount)
    }
    unsafe fn accessibilityRowCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRowCount)
    }
    unsafe fn setAccessibilityRowCount_(&self, accessibilityRowCount: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRowCount : accessibilityRowCount)
    }
    unsafe fn accessibilityIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityIndex)
    }
    unsafe fn setAccessibilityIndex_(&self, accessibilityIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityIndex : accessibilityIndex)
    }
    unsafe fn accessibilityColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumns)
    }
    unsafe fn setAccessibilityColumns_(&self, accessibilityColumns: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityColumns : accessibilityColumns)
    }
    unsafe fn accessibilityRows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRows)
    }
    unsafe fn setAccessibilityRows_(&self, accessibilityRows: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRows : accessibilityRows)
    }
    unsafe fn accessibilityVisibleRows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleRows)
    }
    unsafe fn setAccessibilityVisibleRows_(&self, accessibilityVisibleRows: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVisibleRows : accessibilityVisibleRows)
    }
    unsafe fn accessibilitySelectedRows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedRows)
    }
    unsafe fn setAccessibilitySelectedRows_(&self, accessibilitySelectedRows: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedRows : accessibilitySelectedRows)
    }
    unsafe fn accessibilityVisibleColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleColumns)
    }
    unsafe fn setAccessibilityVisibleColumns_(&self, accessibilityVisibleColumns: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVisibleColumns : accessibilityVisibleColumns)
    }
    unsafe fn accessibilitySelectedColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedColumns)
    }
    unsafe fn setAccessibilitySelectedColumns_(&self, accessibilitySelectedColumns: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedColumns : accessibilitySelectedColumns)
    }
    unsafe fn accessibilitySortDirection(&self) -> NSAccessibilitySortDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySortDirection)
    }
    unsafe fn setAccessibilitySortDirection_(
        &self,
        accessibilitySortDirection: NSAccessibilitySortDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySortDirection : accessibilitySortDirection)
    }
    unsafe fn accessibilityRowHeaderUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRowHeaderUIElements)
    }
    unsafe fn setAccessibilityRowHeaderUIElements_(&self, accessibilityRowHeaderUIElements: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRowHeaderUIElements : accessibilityRowHeaderUIElements)
    }
    unsafe fn accessibilitySelectedCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedCells)
    }
    unsafe fn setAccessibilitySelectedCells_(&self, accessibilitySelectedCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedCells : accessibilitySelectedCells)
    }
    unsafe fn accessibilityVisibleCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleCells)
    }
    unsafe fn setAccessibilityVisibleCells_(&self, accessibilityVisibleCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVisibleCells : accessibilityVisibleCells)
    }
    unsafe fn accessibilityColumnHeaderUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumnHeaderUIElements)
    }
    unsafe fn setAccessibilityColumnHeaderUIElements_(
        &self,
        accessibilityColumnHeaderUIElements: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityColumnHeaderUIElements : accessibilityColumnHeaderUIElements)
    }
    unsafe fn accessibilityRowIndexRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityRowIndexRange)
    }
    unsafe fn setAccessibilityRowIndexRange_(&self, accessibilityRowIndexRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityRowIndexRange : accessibilityRowIndexRange)
    }
    unsafe fn accessibilityColumnIndexRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityColumnIndexRange)
    }
    unsafe fn setAccessibilityColumnIndexRange_(&self, accessibilityColumnIndexRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityColumnIndexRange : accessibilityColumnIndexRange)
    }
    unsafe fn accessibilityInsertionPointLineNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityInsertionPointLineNumber)
    }
    unsafe fn setAccessibilityInsertionPointLineNumber_(
        &self,
        accessibilityInsertionPointLineNumber: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityInsertionPointLineNumber : accessibilityInsertionPointLineNumber)
    }
    unsafe fn accessibilitySharedCharacterRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySharedCharacterRange)
    }
    unsafe fn setAccessibilitySharedCharacterRange_(
        &self,
        accessibilitySharedCharacterRange: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySharedCharacterRange : accessibilitySharedCharacterRange)
    }
    unsafe fn accessibilitySharedTextUIElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySharedTextUIElements)
    }
    unsafe fn setAccessibilitySharedTextUIElements_(
        &self,
        accessibilitySharedTextUIElements: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySharedTextUIElements : accessibilitySharedTextUIElements)
    }
    unsafe fn accessibilityVisibleCharacterRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityVisibleCharacterRange)
    }
    unsafe fn setAccessibilityVisibleCharacterRange_(
        &self,
        accessibilityVisibleCharacterRange: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityVisibleCharacterRange : accessibilityVisibleCharacterRange)
    }
    unsafe fn accessibilityNumberOfCharacters(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityNumberOfCharacters)
    }
    unsafe fn setAccessibilityNumberOfCharacters_(&self, accessibilityNumberOfCharacters: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityNumberOfCharacters : accessibilityNumberOfCharacters)
    }
    unsafe fn accessibilitySelectedText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedText)
    }
    unsafe fn setAccessibilitySelectedText_(&self, accessibilitySelectedText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedText : accessibilitySelectedText)
    }
    unsafe fn accessibilitySelectedTextRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedTextRange)
    }
    unsafe fn setAccessibilitySelectedTextRange_(&self, accessibilitySelectedTextRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedTextRange : accessibilitySelectedTextRange)
    }
    unsafe fn accessibilitySelectedTextRanges(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilitySelectedTextRanges)
    }
    unsafe fn setAccessibilitySelectedTextRanges_(&self, accessibilitySelectedTextRanges: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilitySelectedTextRanges : accessibilitySelectedTextRanges)
    }
    unsafe fn accessibilityToolbarButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityToolbarButton)
    }
    unsafe fn setAccessibilityToolbarButton_(&self, accessibilityToolbarButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityToolbarButton : accessibilityToolbarButton)
    }
    unsafe fn isAccessibilityModal(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityModal)
    }
    unsafe fn setAccessibilityModal_(&self, accessibilityModal: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityModal : accessibilityModal)
    }
    unsafe fn accessibilityProxy(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityProxy)
    }
    unsafe fn setAccessibilityProxy_(&self, accessibilityProxy: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityProxy : accessibilityProxy)
    }
    unsafe fn isAccessibilityMain(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityMain)
    }
    unsafe fn setAccessibilityMain_(&self, accessibilityMain: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMain : accessibilityMain)
    }
    unsafe fn accessibilityFullScreenButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFullScreenButton)
    }
    unsafe fn setAccessibilityFullScreenButton_(&self, accessibilityFullScreenButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFullScreenButton : accessibilityFullScreenButton)
    }
    unsafe fn accessibilityGrowArea(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityGrowArea)
    }
    unsafe fn setAccessibilityGrowArea_(&self, accessibilityGrowArea: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityGrowArea : accessibilityGrowArea)
    }
    unsafe fn accessibilityDocument(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDocument)
    }
    unsafe fn setAccessibilityDocument_(&self, accessibilityDocument: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDocument : accessibilityDocument)
    }
    unsafe fn accessibilityDefaultButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDefaultButton)
    }
    unsafe fn setAccessibilityDefaultButton_(&self, accessibilityDefaultButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDefaultButton : accessibilityDefaultButton)
    }
    unsafe fn accessibilityCloseButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityCloseButton)
    }
    unsafe fn setAccessibilityCloseButton_(&self, accessibilityCloseButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityCloseButton : accessibilityCloseButton)
    }
    unsafe fn accessibilityZoomButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityZoomButton)
    }
    unsafe fn setAccessibilityZoomButton_(&self, accessibilityZoomButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityZoomButton : accessibilityZoomButton)
    }
    unsafe fn accessibilityMinimizeButton(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityMinimizeButton)
    }
    unsafe fn setAccessibilityMinimizeButton_(&self, accessibilityMinimizeButton: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMinimizeButton : accessibilityMinimizeButton)
    }
    unsafe fn isAccessibilityMinimized(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessibilityMinimized)
    }
    unsafe fn setAccessibilityMinimized_(&self, accessibilityMinimized: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityMinimized : accessibilityMinimized)
    }
    unsafe fn accessibilityCustomActions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityCustomActions)
    }
    unsafe fn setAccessibilityCustomActions_(&self, accessibilityCustomActions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityCustomActions : accessibilityCustomActions)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAccessibilityElement(pub id);
impl std::ops::Deref for NSAccessibilityElement {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAccessibilityElement {}
impl NSAccessibilityElement {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAccessibilityElement").unwrap(), alloc) })
    }
}
impl PNSAccessibility for NSAccessibilityElement {}
impl INSObject for NSAccessibilityElement {}
impl PNSObject for NSAccessibilityElement {}
impl std::convert::TryFrom<NSObject> for NSAccessibilityElement {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAccessibilityElement, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAccessibilityElement").unwrap()) };
        if is_kind_of {
            Ok(NSAccessibilityElement(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAccessibilityElement")
        }
    }
}
impl INSAccessibilityElement for NSAccessibilityElement {}
pub trait INSAccessibilityElement: Sized + std::ops::Deref {
    unsafe fn accessibilityAddChildElement_(&self, childElement: NSAccessibilityElement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accessibilityAddChildElement : childElement)
    }
    unsafe fn accessibilityFrameInParentSpace(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityFrameInParentSpace)
    }
    unsafe fn setAccessibilityFrameInParentSpace_(&self, accessibilityFrameInParentSpace: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityFrameInParentSpace : accessibilityFrameInParentSpace)
    }
    unsafe fn accessibilityElementWithRole_frame_label_parent_(
        role: NSString,
        frame: NSRect,
        label: NSString,
        parent: id,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAccessibilityElement").unwrap(), accessibilityElementWithRole : role, frame : frame, label : label, parent : parent)
    }
}
pub type NSAccessibilityCustomRotorSearchDirection = NSInteger;
pub type NSAccessibilityCustomRotorType = NSInteger;
pub trait PNSAccessibilityCustomRotorItemSearchDelegate: Sized + std::ops::Deref {
    unsafe fn rotor_resultForSearchParameters_(
        &self,
        rotor: NSAccessibilityCustomRotor,
        searchParameters: NSAccessibilityCustomRotorSearchParameters,
    ) -> NSAccessibilityCustomRotorItemResult
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rotor : rotor, resultForSearchParameters : searchParameters)
    }
}
pub type NSWorkspaceIconCreationOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWorkspace(pub id);
impl std::ops::Deref for NSWorkspace {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWorkspace {}
impl NSWorkspace {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWorkspace").unwrap(), alloc) })
    }
}
impl INSObject for NSWorkspace {}
impl PNSObject for NSWorkspace {}
impl std::convert::TryFrom<NSObject> for NSWorkspace {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWorkspace, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWorkspace").unwrap()) };
        if is_kind_of {
            Ok(NSWorkspace(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWorkspace")
        }
    }
}
impl INSWorkspace for NSWorkspace {}
pub trait INSWorkspace: Sized + std::ops::Deref {
    unsafe fn openURL_(&self, url: NSURL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openURL : url)
    }
    unsafe fn openURL_configuration_completionHandler_(
        &self,
        url: NSURL,
        configuration: NSWorkspaceOpenConfiguration,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openURL : url, configuration : configuration, completionHandler : completionHandler)
    }
    unsafe fn openURLs_withApplicationAtURL_configuration_completionHandler_(
        &self,
        urls: NSArray,
        applicationURL: NSURL,
        configuration: NSWorkspaceOpenConfiguration,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openURLs : urls, withApplicationAtURL : applicationURL, configuration : configuration, completionHandler : completionHandler)
    }
    unsafe fn openApplicationAtURL_configuration_completionHandler_(
        &self,
        applicationURL: NSURL,
        configuration: NSWorkspaceOpenConfiguration,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openApplicationAtURL : applicationURL, configuration : configuration, completionHandler : completionHandler)
    }
    unsafe fn selectFile_inFileViewerRootedAtPath_(
        &self,
        fullPath: NSString,
        rootFullPath: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectFile : fullPath, inFileViewerRootedAtPath : rootFullPath)
    }
    unsafe fn activateFileViewerSelectingURLs_(&self, fileURLs: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activateFileViewerSelectingURLs : fileURLs)
    }
    unsafe fn showSearchResultsForQueryString_(&self, queryString: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showSearchResultsForQueryString : queryString)
    }
    unsafe fn noteFileSystemChanged_(&self, path: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noteFileSystemChanged : path)
    }
    unsafe fn isFilePackageAtPath_(&self, fullPath: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isFilePackageAtPath : fullPath)
    }
    unsafe fn iconForFile_(&self, fullPath: NSString) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, iconForFile : fullPath)
    }
    unsafe fn iconForFiles_(&self, fullPaths: NSArray) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, iconForFiles : fullPaths)
    }
    unsafe fn iconForContentType_(&self, contentType: UTType) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, iconForContentType : contentType)
    }
    unsafe fn setIcon_forFile_options_(
        &self,
        image: NSImage,
        fullPath: NSString,
        options: NSWorkspaceIconCreationOptions,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIcon : image, forFile : fullPath, options : options)
    }
    unsafe fn recycleURLs_completionHandler_(
        &self,
        URLs: NSArray,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, recycleURLs : URLs, completionHandler : handler)
    }
    unsafe fn duplicateURLs_completionHandler_(
        &self,
        URLs: NSArray,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, duplicateURLs : URLs, completionHandler : handler)
    }
    unsafe fn getFileSystemInfoForPath_isRemovable_isWritable_isUnmountable_description_type_(
        &self,
        fullPath: NSString,
        removableFlag: *mut BOOL,
        writableFlag: *mut BOOL,
        unmountableFlag: *mut BOOL,
        description: *mut NSString,
        fileSystemType: *mut NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getFileSystemInfoForPath : fullPath, isRemovable : removableFlag, isWritable : writableFlag, isUnmountable : unmountableFlag, description : description, r#type : fileSystemType)
    }
    unsafe fn unmountAndEjectDeviceAtPath_(&self, path: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unmountAndEjectDeviceAtPath : path)
    }
    unsafe fn unmountAndEjectDeviceAtURL_error_(&self, url: NSURL, error: *mut NSError) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unmountAndEjectDeviceAtURL : url, error : error)
    }
    unsafe fn extendPowerOffBy_(&self, requested: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, extendPowerOffBy : requested)
    }
    unsafe fn hideOtherApplications(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hideOtherApplications)
    }
    unsafe fn URLForApplicationWithBundleIdentifier_(&self, bundleIdentifier: NSString) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, URLForApplicationWithBundleIdentifier : bundleIdentifier)
    }
    unsafe fn URLsForApplicationsWithBundleIdentifier_(&self, bundleIdentifier: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, URLsForApplicationsWithBundleIdentifier : bundleIdentifier)
    }
    unsafe fn URLForApplicationToOpenURL_(&self, url: NSURL) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, URLForApplicationToOpenURL : url)
    }
    unsafe fn URLsForApplicationsToOpenURL_(&self, url: NSURL) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, URLsForApplicationsToOpenURL : url)
    }
    unsafe fn setDefaultApplicationAtURL_toOpenContentTypeOfFileAtURL_completionHandler_(
        &self,
        applicationURL: NSURL,
        url: NSURL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultApplicationAtURL : applicationURL, toOpenContentTypeOfFileAtURL : url, completionHandler : completionHandler)
    }
    unsafe fn setDefaultApplicationAtURL_toOpenURLsWithScheme_completionHandler_(
        &self,
        applicationURL: NSURL,
        urlScheme: NSString,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultApplicationAtURL : applicationURL, toOpenURLsWithScheme : urlScheme, completionHandler : completionHandler)
    }
    unsafe fn setDefaultApplicationAtURL_toOpenFileAtURL_completionHandler_(
        &self,
        applicationURL: NSURL,
        url: NSURL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultApplicationAtURL : applicationURL, toOpenFileAtURL : url, completionHandler : completionHandler)
    }
    unsafe fn URLForApplicationToOpenContentType_(&self, contentType: UTType) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, URLForApplicationToOpenContentType : contentType)
    }
    unsafe fn URLsForApplicationsToOpenContentType_(&self, contentType: UTType) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, URLsForApplicationsToOpenContentType : contentType)
    }
    unsafe fn setDefaultApplicationAtURL_toOpenContentType_completionHandler_(
        &self,
        applicationURL: NSURL,
        contentType: UTType,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultApplicationAtURL : applicationURL, toOpenContentType : contentType, completionHandler : completionHandler)
    }
    unsafe fn notificationCenter(&self) -> NSNotificationCenter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, notificationCenter)
    }
    unsafe fn fileLabels(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileLabels)
    }
    unsafe fn fileLabelColors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileLabelColors)
    }
    unsafe fn frontmostApplication(&self) -> NSRunningApplication
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frontmostApplication)
    }
    unsafe fn menuBarOwningApplication(&self) -> NSRunningApplication
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menuBarOwningApplication)
    }
    unsafe fn sharedWorkspace() -> NSWorkspace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWorkspace").unwrap(), sharedWorkspace)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWorkspaceOpenConfiguration(pub id);
impl std::ops::Deref for NSWorkspaceOpenConfiguration {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWorkspaceOpenConfiguration {}
impl NSWorkspaceOpenConfiguration {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWorkspaceOpenConfiguration").unwrap(), alloc) })
    }
}
impl PNSCopying for NSWorkspaceOpenConfiguration {}
impl INSObject for NSWorkspaceOpenConfiguration {}
impl PNSObject for NSWorkspaceOpenConfiguration {}
impl std::convert::TryFrom<NSObject> for NSWorkspaceOpenConfiguration {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWorkspaceOpenConfiguration, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWorkspaceOpenConfiguration").unwrap()) };
        if is_kind_of {
            Ok(NSWorkspaceOpenConfiguration(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWorkspaceOpenConfiguration")
        }
    }
}
impl INSWorkspaceOpenConfiguration for NSWorkspaceOpenConfiguration {}
pub trait INSWorkspaceOpenConfiguration: Sized + std::ops::Deref {
    unsafe fn promptsUserIfNeeded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, promptsUserIfNeeded)
    }
    unsafe fn setPromptsUserIfNeeded_(&self, promptsUserIfNeeded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPromptsUserIfNeeded : promptsUserIfNeeded)
    }
    unsafe fn addsToRecentItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, addsToRecentItems)
    }
    unsafe fn setAddsToRecentItems_(&self, addsToRecentItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAddsToRecentItems : addsToRecentItems)
    }
    unsafe fn activates(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activates)
    }
    unsafe fn setActivates_(&self, activates: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setActivates : activates)
    }
    unsafe fn hides(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hides)
    }
    unsafe fn setHides_(&self, hides: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHides : hides)
    }
    unsafe fn hidesOthers(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hidesOthers)
    }
    unsafe fn setHidesOthers_(&self, hidesOthers: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidesOthers : hidesOthers)
    }
    unsafe fn isForPrinting(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isForPrinting)
    }
    unsafe fn setForPrinting_(&self, forPrinting: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setForPrinting : forPrinting)
    }
    unsafe fn createsNewApplicationInstance(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createsNewApplicationInstance)
    }
    unsafe fn setCreatesNewApplicationInstance_(&self, createsNewApplicationInstance: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCreatesNewApplicationInstance : createsNewApplicationInstance)
    }
    unsafe fn allowsRunningApplicationSubstitution(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsRunningApplicationSubstitution)
    }
    unsafe fn setAllowsRunningApplicationSubstitution_(
        &self,
        allowsRunningApplicationSubstitution: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsRunningApplicationSubstitution : allowsRunningApplicationSubstitution)
    }
    unsafe fn arguments(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arguments)
    }
    unsafe fn setArguments_(&self, arguments: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setArguments : arguments)
    }
    unsafe fn environment(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, environment)
    }
    unsafe fn setEnvironment_(&self, environment: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnvironment : environment)
    }
    unsafe fn appleEvent(&self) -> NSAppleEventDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, appleEvent)
    }
    unsafe fn setAppleEvent_(&self, appleEvent: NSAppleEventDescriptor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAppleEvent : appleEvent)
    }
    unsafe fn architecture(&self) -> cpu_type_t
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, architecture)
    }
    unsafe fn setArchitecture_(&self, architecture: cpu_type_t)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setArchitecture : architecture)
    }
    unsafe fn requiresUniversalLinks(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiresUniversalLinks)
    }
    unsafe fn setRequiresUniversalLinks_(&self, requiresUniversalLinks: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRequiresUniversalLinks : requiresUniversalLinks)
    }
    unsafe fn configuration() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWorkspaceOpenConfiguration").unwrap(), configuration)
    }
}
pub type NSWorkspaceDesktopImageOptionKey = NSString;
impl NSWorkspace_NSDesktopImages for NSWorkspace {}
pub type NSWorkspaceAuthorizationType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWorkspaceAuthorization(pub id);
impl std::ops::Deref for NSWorkspaceAuthorization {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWorkspaceAuthorization {}
impl NSWorkspaceAuthorization {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWorkspaceAuthorization").unwrap(), alloc) })
    }
}
impl INSObject for NSWorkspaceAuthorization {}
impl PNSObject for NSWorkspaceAuthorization {}
impl std::convert::TryFrom<NSObject> for NSWorkspaceAuthorization {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWorkspaceAuthorization, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWorkspaceAuthorization").unwrap()) };
        if is_kind_of {
            Ok(NSWorkspaceAuthorization(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWorkspaceAuthorization")
        }
    }
}
impl INSWorkspaceAuthorization for NSWorkspaceAuthorization {}
pub trait INSWorkspaceAuthorization: Sized + std::ops::Deref {}
impl NSWorkspace_NSWorkspaceAuthorization for NSWorkspace {}
pub type NSWorkspaceFileOperationName = NSString;
pub type NSWorkspaceLaunchOptions = NSUInteger;
pub type NSWorkspaceLaunchConfigurationKey = NSString;
impl NSWorkspace_NSDeprecated for NSWorkspace {}
impl NSWorkspace_NSWorkspaceAccessibilityDisplay for NSWorkspace {}
impl NSWorkspace_NSWorkspaceAccessibility for NSWorkspace {}
pub type NSTouchPhase = NSUInteger;
pub type NSTouchType = NSInteger;
pub type NSTouchTypeMask = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTouch(pub id);
impl std::ops::Deref for NSTouch {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTouch {}
impl NSTouch {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTouch").unwrap(), alloc) })
    }
}
impl PNSCopying for NSTouch {}
impl INSObject for NSTouch {}
impl PNSObject for NSTouch {}
impl std::convert::TryFrom<NSObject> for NSTouch {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTouch, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTouch").unwrap()) };
        if is_kind_of {
            Ok(NSTouch(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTouch")
        }
    }
}
impl INSTouch for NSTouch {}
pub trait INSTouch: Sized + std::ops::Deref {
    unsafe fn identity(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identity)
    }
    unsafe fn phase(&self) -> NSTouchPhase
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phase)
    }
    unsafe fn normalizedPosition(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, normalizedPosition)
    }
    unsafe fn isResting(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isResting)
    }
    unsafe fn device(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, device)
    }
    unsafe fn deviceSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deviceSize)
    }
}
impl NSTouch_NSTouchBar for NSTouch {}
pub type NSEventType = NSUInteger;
pub type NSEventModifierFlags = NSUInteger;
pub type NSPointingDeviceType = NSUInteger;
pub type NSEventButtonMask = NSUInteger;
pub type NSEventPhase = NSUInteger;
pub type NSEventGestureAxis = NSInteger;
pub type NSEventSwipeTrackingOptions = NSUInteger;
pub type NSEventSubtype = ::std::os::raw::c_short;
pub type NSPressureBehavior = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSEvent(pub id);
impl std::ops::Deref for NSEvent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSEvent {}
impl NSEvent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), alloc) })
    }
}
impl PNSCopying for NSEvent {}
impl PNSCoding for NSEvent {}
impl INSObject for NSEvent {}
impl PNSObject for NSEvent {}
impl std::convert::TryFrom<NSObject> for NSEvent {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSEvent, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSEvent").unwrap()) };
        if is_kind_of {
            Ok(NSEvent(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSEvent")
        }
    }
}
impl INSEvent for NSEvent {}
pub trait INSEvent: Sized + std::ops::Deref {
    unsafe fn charactersByApplyingModifiers_(&self, modifiers: NSEventModifierFlags) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, charactersByApplyingModifiers : modifiers)
    }
    unsafe fn touchesMatchingPhase_inView_(&self, phase: NSTouchPhase, view: NSView) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchesMatchingPhase : phase, inView : view)
    }
    unsafe fn allTouches(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allTouches)
    }
    unsafe fn touchesForView_(&self, view: NSView) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchesForView : view)
    }
    unsafe fn coalescedTouchesForTouch_(&self, touch: NSTouch) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, coalescedTouchesForTouch : touch)
    }
    unsafe fn trackSwipeEventWithOptions_dampenAmountThresholdMin_max_usingHandler_(
        &self,
        options: NSEventSwipeTrackingOptions,
        minDampenThreshold: CGFloat,
        maxDampenThreshold: CGFloat,
        trackingHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackSwipeEventWithOptions : options, dampenAmountThresholdMin : minDampenThreshold, max : maxDampenThreshold, usingHandler : trackingHandler)
    }
    unsafe fn type_(&self) -> NSEventType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn modifierFlags(&self) -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifierFlags)
    }
    unsafe fn timestamp(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, timestamp)
    }
    unsafe fn window(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, window)
    }
    unsafe fn windowNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowNumber)
    }
    unsafe fn context(&self) -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, context)
    }
    unsafe fn clickCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickCount)
    }
    unsafe fn buttonNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonNumber)
    }
    unsafe fn eventNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, eventNumber)
    }
    unsafe fn pressure(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pressure)
    }
    unsafe fn locationInWindow(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locationInWindow)
    }
    unsafe fn deltaX(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deltaX)
    }
    unsafe fn deltaY(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deltaY)
    }
    unsafe fn deltaZ(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deltaZ)
    }
    unsafe fn hasPreciseScrollingDeltas(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasPreciseScrollingDeltas)
    }
    unsafe fn scrollingDeltaX(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollingDeltaX)
    }
    unsafe fn scrollingDeltaY(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollingDeltaY)
    }
    unsafe fn momentumPhase(&self) -> NSEventPhase
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, momentumPhase)
    }
    unsafe fn isDirectionInvertedFromDevice(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDirectionInvertedFromDevice)
    }
    unsafe fn characters(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, characters)
    }
    unsafe fn charactersIgnoringModifiers(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, charactersIgnoringModifiers)
    }
    unsafe fn isARepeat(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isARepeat)
    }
    unsafe fn keyCode(&self) -> ::std::os::raw::c_ushort
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyCode)
    }
    unsafe fn trackingNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trackingNumber)
    }
    unsafe fn userData(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userData)
    }
    unsafe fn trackingArea(&self) -> NSTrackingArea
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trackingArea)
    }
    unsafe fn subtype(&self) -> NSEventSubtype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subtype)
    }
    unsafe fn data1(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, data1)
    }
    unsafe fn data2(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, data2)
    }
    unsafe fn eventRef(&self) -> *const ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, eventRef)
    }
    unsafe fn CGEvent(&self) -> CGEventRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGEvent)
    }
    unsafe fn magnification(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, magnification)
    }
    unsafe fn deviceID(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deviceID)
    }
    unsafe fn rotation(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rotation)
    }
    unsafe fn absoluteX(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, absoluteX)
    }
    unsafe fn absoluteY(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, absoluteY)
    }
    unsafe fn absoluteZ(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, absoluteZ)
    }
    unsafe fn buttonMask(&self) -> NSEventButtonMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonMask)
    }
    unsafe fn tilt(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tilt)
    }
    unsafe fn tangentialPressure(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tangentialPressure)
    }
    unsafe fn vendorDefined(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, vendorDefined)
    }
    unsafe fn vendorID(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, vendorID)
    }
    unsafe fn tabletID(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabletID)
    }
    unsafe fn pointingDeviceID(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pointingDeviceID)
    }
    unsafe fn systemTabletID(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, systemTabletID)
    }
    unsafe fn vendorPointingDeviceType(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, vendorPointingDeviceType)
    }
    unsafe fn pointingDeviceSerialNumber(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pointingDeviceSerialNumber)
    }
    unsafe fn uniqueID(&self) -> ::std::os::raw::c_ulonglong
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, uniqueID)
    }
    unsafe fn capabilityMask(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, capabilityMask)
    }
    unsafe fn pointingDeviceType(&self) -> NSPointingDeviceType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pointingDeviceType)
    }
    unsafe fn isEnteringProximity(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnteringProximity)
    }
    unsafe fn phase(&self) -> NSEventPhase
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, phase)
    }
    unsafe fn stage(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stage)
    }
    unsafe fn stageTransition(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stageTransition)
    }
    unsafe fn associatedEventsMask(&self) -> NSEventMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, associatedEventsMask)
    }
    unsafe fn pressureBehavior(&self) -> NSPressureBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pressureBehavior)
    }
    unsafe fn eventWithEventRef_(eventRef: *const ::std::os::raw::c_void) -> NSEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), eventWithEventRef : eventRef)
    }
    unsafe fn eventWithCGEvent_(cgEvent: CGEventRef) -> NSEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), eventWithCGEvent : cgEvent)
    }
    unsafe fn startPeriodicEventsAfterDelay_withPeriod_(
        delay: NSTimeInterval,
        period: NSTimeInterval,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), startPeriodicEventsAfterDelay : delay, withPeriod : period)
    }
    unsafe fn stopPeriodicEvents()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), stopPeriodicEvents)
    }
    unsafe fn mouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(
        type_: NSEventType,
        location: NSPoint,
        flags: NSEventModifierFlags,
        time: NSTimeInterval,
        wNum: NSInteger,
        unusedPassNil: NSGraphicsContext,
        eNum: NSInteger,
        cNum: NSInteger,
        pressure: f32,
    ) -> NSEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), mouseEventWithType : type_, location : location, modifierFlags : flags, timestamp : time, windowNumber : wNum, context : unusedPassNil, eventNumber : eNum, clickCount : cNum, pressure : pressure)
    }
    unsafe fn keyEventWithType_location_modifierFlags_timestamp_windowNumber_context_characters_charactersIgnoringModifiers_isARepeat_keyCode_(
        type_: NSEventType,
        location: NSPoint,
        flags: NSEventModifierFlags,
        time: NSTimeInterval,
        wNum: NSInteger,
        unusedPassNil: NSGraphicsContext,
        keys: NSString,
        ukeys: NSString,
        flag: BOOL,
        code: ::std::os::raw::c_ushort,
    ) -> NSEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), keyEventWithType : type_, location : location, modifierFlags : flags, timestamp : time, windowNumber : wNum, context : unusedPassNil, characters : keys, charactersIgnoringModifiers : ukeys, isARepeat : flag, keyCode : code)
    }
    unsafe fn enterExitEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_trackingNumber_userData_(
        type_: NSEventType,
        location: NSPoint,
        flags: NSEventModifierFlags,
        time: NSTimeInterval,
        wNum: NSInteger,
        unusedPassNil: NSGraphicsContext,
        eNum: NSInteger,
        tNum: NSInteger,
        data: *mut ::std::os::raw::c_void,
    ) -> NSEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), enterExitEventWithType : type_, location : location, modifierFlags : flags, timestamp : time, windowNumber : wNum, context : unusedPassNil, eventNumber : eNum, trackingNumber : tNum, userData : data)
    }
    unsafe fn otherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_(
        type_: NSEventType,
        location: NSPoint,
        flags: NSEventModifierFlags,
        time: NSTimeInterval,
        wNum: NSInteger,
        unusedPassNil: NSGraphicsContext,
        subtype: ::std::os::raw::c_short,
        d1: NSInteger,
        d2: NSInteger,
    ) -> NSEvent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), otherEventWithType : type_, location : location, modifierFlags : flags, timestamp : time, windowNumber : wNum, context : unusedPassNil, subtype : subtype, data1 : d1, data2 : d2)
    }
    unsafe fn addGlobalMonitorForEventsMatchingMask_handler_(
        mask: NSEventMask,
        block: *mut ::std::os::raw::c_void,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), addGlobalMonitorForEventsMatchingMask : mask, handler : block)
    }
    unsafe fn addLocalMonitorForEventsMatchingMask_handler_(
        mask: NSEventMask,
        block: *mut ::std::os::raw::c_void,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), addLocalMonitorForEventsMatchingMask : mask, handler : block)
    }
    unsafe fn removeMonitor_(eventMonitor: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), removeMonitor : eventMonitor)
    }
    unsafe fn isMouseCoalescingEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), isMouseCoalescingEnabled)
    }
    unsafe fn setMouseCoalescingEnabled_(mouseCoalescingEnabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), setMouseCoalescingEnabled : mouseCoalescingEnabled)
    }
    unsafe fn isSwipeTrackingFromScrollEventsEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), isSwipeTrackingFromScrollEventsEnabled)
    }
    unsafe fn mouseLocation() -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), mouseLocation)
    }
    unsafe fn class_modifierFlags() -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), modifierFlags)
    }
    unsafe fn pressedMouseButtons() -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), pressedMouseButtons)
    }
    unsafe fn doubleClickInterval() -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), doubleClickInterval)
    }
    unsafe fn keyRepeatDelay() -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), keyRepeatDelay)
    }
    unsafe fn keyRepeatInterval() -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEvent").unwrap(), keyRepeatInterval)
    }
}
pub type NSPasteboardAccessBehavior = NSInteger;
pub type NSPasteboardDetectionPattern = NSString;
pub type NSPasteboardMetadataType = NSString;
pub type NSPasteboardContentsOptions = NSUInteger;
pub type NSPasteboardReadingOptionKey = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPasteboard(pub id);
impl std::ops::Deref for NSPasteboard {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPasteboard {}
impl NSPasteboard {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboard").unwrap(), alloc) })
    }
}
impl INSObject for NSPasteboard {}
impl PNSObject for NSPasteboard {}
impl std::convert::TryFrom<NSObject> for NSPasteboard {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPasteboard, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPasteboard").unwrap()) };
        if is_kind_of {
            Ok(NSPasteboard(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPasteboard")
        }
    }
}
impl INSPasteboard for NSPasteboard {}
pub trait INSPasteboard: Sized + std::ops::Deref {
    unsafe fn releaseGlobally(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, releaseGlobally)
    }
    unsafe fn prepareForNewContentsWithOptions_(
        &self,
        options: NSPasteboardContentsOptions,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, prepareForNewContentsWithOptions : options)
    }
    unsafe fn clearContents(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clearContents)
    }
    unsafe fn writeObjects_(&self, objects: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeObjects : objects)
    }
    unsafe fn readObjectsForClasses_options_(
        &self,
        classArray: NSArray,
        options: NSDictionary,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readObjectsForClasses : classArray, options : options)
    }
    unsafe fn indexOfPasteboardItem_(&self, pasteboardItem: NSPasteboardItem) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfPasteboardItem : pasteboardItem)
    }
    unsafe fn canReadItemWithDataConformingToTypes_(&self, types: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canReadItemWithDataConformingToTypes : types)
    }
    unsafe fn canReadObjectForClasses_options_(
        &self,
        classArray: NSArray,
        options: NSDictionary,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canReadObjectForClasses : classArray, options : options)
    }
    unsafe fn declareTypes_owner_(&self, newTypes: NSArray, newOwner: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, declareTypes : newTypes, owner : newOwner)
    }
    unsafe fn addTypes_owner_(&self, newTypes: NSArray, newOwner: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTypes : newTypes, owner : newOwner)
    }
    unsafe fn availableTypeFromArray_(&self, types: NSArray) -> NSPasteboardType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, availableTypeFromArray : types)
    }
    unsafe fn setData_forType_(&self, data: NSData, dataType: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setData : data, forType : dataType)
    }
    unsafe fn setPropertyList_forType_(&self, plist: id, dataType: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPropertyList : plist, forType : dataType)
    }
    unsafe fn setString_forType_(&self, string: NSString, dataType: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setString : string, forType : dataType)
    }
    unsafe fn dataForType_(&self, dataType: NSString) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dataForType : dataType)
    }
    unsafe fn propertyListForType_(&self, dataType: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, propertyListForType : dataType)
    }
    unsafe fn stringForType_(&self, dataType: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stringForType : dataType)
    }
    unsafe fn detectPatternsForPatterns_completionHandler_(
        &self,
        patterns: NSSet,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detectPatternsForPatterns : patterns, completionHandler : completionHandler)
    }
    unsafe fn detectValuesForPatterns_completionHandler_(
        &self,
        patterns: NSSet,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detectValuesForPatterns : patterns, completionHandler : completionHandler)
    }
    unsafe fn detectMetadataForTypes_completionHandler_(
        &self,
        types: NSSet,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detectMetadataForTypes : types, completionHandler : completionHandler)
    }
    unsafe fn name(&self) -> NSPasteboardName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn changeCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, changeCount)
    }
    unsafe fn accessBehavior(&self) -> NSPasteboardAccessBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessBehavior)
    }
    unsafe fn pasteboardItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pasteboardItems)
    }
    unsafe fn types(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, types)
    }
    unsafe fn pasteboardWithName_(name: NSString) -> NSPasteboard
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboard").unwrap(), pasteboardWithName : name)
    }
    unsafe fn pasteboardWithUniqueName() -> NSPasteboard
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboard").unwrap(), pasteboardWithUniqueName)
    }
    unsafe fn generalPasteboard() -> NSPasteboard
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboard").unwrap(), generalPasteboard)
    }
}
impl NSPasteboard_FilterServices for NSPasteboard {}
pub trait PNSPasteboardTypeOwner: Sized + std::ops::Deref {
    unsafe fn pasteboard_provideDataForType_(&self, sender: NSPasteboard, type_: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteboard : sender, provideDataForType : type_)
    }
    unsafe fn pasteboardChangedOwner_(&self, sender: NSPasteboard)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteboardChangedOwner : sender)
    }
}
pub type NSPasteboardWritingOptions = NSUInteger;
pub trait PNSPasteboardWriting: Sized + std::ops::Deref {
    unsafe fn writableTypesForPasteboard_(&self, pasteboard: NSPasteboard) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writableTypesForPasteboard : pasteboard)
    }
    unsafe fn writingOptionsForType_pasteboard_(
        &self,
        type_: NSString,
        pasteboard: NSPasteboard,
    ) -> NSPasteboardWritingOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingOptionsForType : type_, pasteboard : pasteboard)
    }
    unsafe fn pasteboardPropertyListForType_(&self, type_: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteboardPropertyListForType : type_)
    }
}
pub type NSPasteboardReadingOptions = NSUInteger;
pub trait PNSPasteboardReading: Sized + std::ops::Deref {
    unsafe fn initWithPasteboardPropertyList_ofType_(&self, propertyList: id, type_: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPasteboardPropertyList : propertyList, ofType : type_)
    }
    unsafe fn readableTypesForPasteboard_(pasteboard: NSPasteboard) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboardReading").unwrap(), readableTypesForPasteboard : pasteboard)
    }
    unsafe fn readingOptionsForType_pasteboard_(
        type_: NSString,
        pasteboard: NSPasteboard,
    ) -> NSPasteboardReadingOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboardReading").unwrap(), readingOptionsForType : type_, pasteboard : pasteboard)
    }
}
impl NSPasteboard_NSFileContents for NSPasteboard {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSResponder(pub id);
impl std::ops::Deref for NSResponder {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSResponder {}
impl NSResponder {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSResponder").unwrap(), alloc) })
    }
}
impl PNSCoding for NSResponder {}
impl INSObject for NSResponder {}
impl PNSObject for NSResponder {}
impl std::convert::TryFrom<NSObject> for NSResponder {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSResponder, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSResponder").unwrap()) };
        if is_kind_of {
            Ok(NSResponder(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSResponder")
        }
    }
}
impl INSResponder for NSResponder {}
pub trait INSResponder: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn tryToPerform_with_(&self, action: objc2::runtime::Sel, object: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tryToPerform : action, with : object)
    }
    unsafe fn performKeyEquivalent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performKeyEquivalent : event)
    }
    unsafe fn validRequestorForSendType_returnType_(
        &self,
        sendType: NSString,
        returnType: NSString,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validRequestorForSendType : sendType, returnType : returnType)
    }
    unsafe fn mouseDown_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseDown : event)
    }
    unsafe fn rightMouseDown_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rightMouseDown : event)
    }
    unsafe fn otherMouseDown_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, otherMouseDown : event)
    }
    unsafe fn mouseUp_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseUp : event)
    }
    unsafe fn rightMouseUp_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rightMouseUp : event)
    }
    unsafe fn otherMouseUp_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, otherMouseUp : event)
    }
    unsafe fn mouseMoved_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseMoved : event)
    }
    unsafe fn mouseDragged_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseDragged : event)
    }
    unsafe fn mouseCancelled_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseCancelled : event)
    }
    unsafe fn scrollWheel_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollWheel : event)
    }
    unsafe fn rightMouseDragged_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rightMouseDragged : event)
    }
    unsafe fn otherMouseDragged_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, otherMouseDragged : event)
    }
    unsafe fn mouseEntered_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseEntered : event)
    }
    unsafe fn mouseExited_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseExited : event)
    }
    unsafe fn keyDown_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, keyDown : event)
    }
    unsafe fn keyUp_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, keyUp : event)
    }
    unsafe fn flagsChanged_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, flagsChanged : event)
    }
    unsafe fn tabletPoint_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabletPoint : event)
    }
    unsafe fn tabletProximity_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabletProximity : event)
    }
    unsafe fn cursorUpdate_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cursorUpdate : event)
    }
    unsafe fn magnifyWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, magnifyWithEvent : event)
    }
    unsafe fn rotateWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rotateWithEvent : event)
    }
    unsafe fn swipeWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, swipeWithEvent : event)
    }
    unsafe fn beginGestureWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginGestureWithEvent : event)
    }
    unsafe fn endGestureWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endGestureWithEvent : event)
    }
    unsafe fn smartMagnifyWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, smartMagnifyWithEvent : event)
    }
    unsafe fn changeModeWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeModeWithEvent : event)
    }
    unsafe fn touchesBeganWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchesBeganWithEvent : event)
    }
    unsafe fn touchesMovedWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchesMovedWithEvent : event)
    }
    unsafe fn touchesEndedWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchesEndedWithEvent : event)
    }
    unsafe fn touchesCancelledWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchesCancelledWithEvent : event)
    }
    unsafe fn quickLookWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, quickLookWithEvent : event)
    }
    unsafe fn pressureChangeWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pressureChangeWithEvent : event)
    }
    unsafe fn contextMenuKeyDown_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, contextMenuKeyDown : event)
    }
    unsafe fn noResponderFor_(&self, eventSelector: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noResponderFor : eventSelector)
    }
    unsafe fn becomeFirstResponder(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, becomeFirstResponder)
    }
    unsafe fn resignFirstResponder(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resignFirstResponder)
    }
    unsafe fn interpretKeyEvents_(&self, eventArray: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, interpretKeyEvents : eventArray)
    }
    unsafe fn flushBufferedKeyEvents(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flushBufferedKeyEvents)
    }
    unsafe fn showContextHelp_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showContextHelp : sender)
    }
    unsafe fn helpRequested_(&self, eventPtr: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, helpRequested : eventPtr)
    }
    unsafe fn shouldBeTreatedAsInkEvent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldBeTreatedAsInkEvent : event)
    }
    unsafe fn wantsScrollEventsForSwipeTrackingOnAxis_(&self, axis: NSEventGestureAxis) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, wantsScrollEventsForSwipeTrackingOnAxis : axis)
    }
    unsafe fn wantsForwardedScrollEventsForAxis_(&self, axis: NSEventGestureAxis) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, wantsForwardedScrollEventsForAxis : axis)
    }
    unsafe fn supplementalTargetForAction_sender_(
        &self,
        action: objc2::runtime::Sel,
        sender: id,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, supplementalTargetForAction : action, sender : sender)
    }
    unsafe fn nextResponder(&self) -> NSResponder
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nextResponder)
    }
    unsafe fn setNextResponder_(&self, nextResponder: NSResponder)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNextResponder : nextResponder)
    }
    unsafe fn acceptsFirstResponder(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, acceptsFirstResponder)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
}
pub trait PNSStandardKeyBindingResponding: Sized + std::ops::Deref {
    unsafe fn insertText_(&self, insertString: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertText : insertString)
    }
    unsafe fn doCommandBySelector_(&self, selector: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, doCommandBySelector : selector)
    }
    unsafe fn moveForward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveForward : sender)
    }
    unsafe fn moveRight_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveRight : sender)
    }
    unsafe fn moveBackward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveBackward : sender)
    }
    unsafe fn moveLeft_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveLeft : sender)
    }
    unsafe fn moveUp_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveUp : sender)
    }
    unsafe fn moveDown_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveDown : sender)
    }
    unsafe fn moveWordForward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordForward : sender)
    }
    unsafe fn moveWordBackward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordBackward : sender)
    }
    unsafe fn moveToBeginningOfLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToBeginningOfLine : sender)
    }
    unsafe fn moveToEndOfLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToEndOfLine : sender)
    }
    unsafe fn moveToBeginningOfParagraph_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToBeginningOfParagraph : sender)
    }
    unsafe fn moveToEndOfParagraph_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToEndOfParagraph : sender)
    }
    unsafe fn moveToEndOfDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToEndOfDocument : sender)
    }
    unsafe fn moveToBeginningOfDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToBeginningOfDocument : sender)
    }
    unsafe fn pageDown_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageDown : sender)
    }
    unsafe fn pageUp_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageUp : sender)
    }
    unsafe fn centerSelectionInVisibleArea_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, centerSelectionInVisibleArea : sender)
    }
    unsafe fn moveBackwardAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveBackwardAndModifySelection : sender)
    }
    unsafe fn moveForwardAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveForwardAndModifySelection : sender)
    }
    unsafe fn moveWordForwardAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordForwardAndModifySelection : sender)
    }
    unsafe fn moveWordBackwardAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordBackwardAndModifySelection : sender)
    }
    unsafe fn moveUpAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveUpAndModifySelection : sender)
    }
    unsafe fn moveDownAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveDownAndModifySelection : sender)
    }
    unsafe fn moveToBeginningOfLineAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToBeginningOfLineAndModifySelection : sender)
    }
    unsafe fn moveToEndOfLineAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToEndOfLineAndModifySelection : sender)
    }
    unsafe fn moveToBeginningOfParagraphAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToBeginningOfParagraphAndModifySelection : sender)
    }
    unsafe fn moveToEndOfParagraphAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToEndOfParagraphAndModifySelection : sender)
    }
    unsafe fn moveToEndOfDocumentAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToEndOfDocumentAndModifySelection : sender)
    }
    unsafe fn moveToBeginningOfDocumentAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToBeginningOfDocumentAndModifySelection : sender)
    }
    unsafe fn pageDownAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageDownAndModifySelection : sender)
    }
    unsafe fn pageUpAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageUpAndModifySelection : sender)
    }
    unsafe fn moveParagraphForwardAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveParagraphForwardAndModifySelection : sender)
    }
    unsafe fn moveParagraphBackwardAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveParagraphBackwardAndModifySelection : sender)
    }
    unsafe fn moveWordRight_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordRight : sender)
    }
    unsafe fn moveWordLeft_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordLeft : sender)
    }
    unsafe fn moveRightAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveRightAndModifySelection : sender)
    }
    unsafe fn moveLeftAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveLeftAndModifySelection : sender)
    }
    unsafe fn moveWordRightAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordRightAndModifySelection : sender)
    }
    unsafe fn moveWordLeftAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveWordLeftAndModifySelection : sender)
    }
    unsafe fn moveToLeftEndOfLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToLeftEndOfLine : sender)
    }
    unsafe fn moveToRightEndOfLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToRightEndOfLine : sender)
    }
    unsafe fn moveToLeftEndOfLineAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToLeftEndOfLineAndModifySelection : sender)
    }
    unsafe fn moveToRightEndOfLineAndModifySelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToRightEndOfLineAndModifySelection : sender)
    }
    unsafe fn scrollPageUp_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollPageUp : sender)
    }
    unsafe fn scrollPageDown_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollPageDown : sender)
    }
    unsafe fn scrollLineUp_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollLineUp : sender)
    }
    unsafe fn scrollLineDown_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollLineDown : sender)
    }
    unsafe fn scrollToBeginningOfDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollToBeginningOfDocument : sender)
    }
    unsafe fn scrollToEndOfDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollToEndOfDocument : sender)
    }
    unsafe fn transpose_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, transpose : sender)
    }
    unsafe fn transposeWords_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, transposeWords : sender)
    }
    unsafe fn selectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAll : sender)
    }
    unsafe fn selectParagraph_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectParagraph : sender)
    }
    unsafe fn selectLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectLine : sender)
    }
    unsafe fn selectWord_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectWord : sender)
    }
    unsafe fn indent_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indent : sender)
    }
    unsafe fn insertTab_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertTab : sender)
    }
    unsafe fn insertBacktab_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertBacktab : sender)
    }
    unsafe fn insertNewline_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertNewline : sender)
    }
    unsafe fn insertParagraphSeparator_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertParagraphSeparator : sender)
    }
    unsafe fn insertNewlineIgnoringFieldEditor_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertNewlineIgnoringFieldEditor : sender)
    }
    unsafe fn insertTabIgnoringFieldEditor_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertTabIgnoringFieldEditor : sender)
    }
    unsafe fn insertLineBreak_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertLineBreak : sender)
    }
    unsafe fn insertContainerBreak_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertContainerBreak : sender)
    }
    unsafe fn insertSingleQuoteIgnoringSubstitution_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertSingleQuoteIgnoringSubstitution : sender)
    }
    unsafe fn insertDoubleQuoteIgnoringSubstitution_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertDoubleQuoteIgnoringSubstitution : sender)
    }
    unsafe fn changeCaseOfLetter_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeCaseOfLetter : sender)
    }
    unsafe fn uppercaseWord_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, uppercaseWord : sender)
    }
    unsafe fn lowercaseWord_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lowercaseWord : sender)
    }
    unsafe fn capitalizeWord_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, capitalizeWord : sender)
    }
    unsafe fn deleteForward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteForward : sender)
    }
    unsafe fn deleteBackward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteBackward : sender)
    }
    unsafe fn deleteBackwardByDecomposingPreviousCharacter_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteBackwardByDecomposingPreviousCharacter : sender)
    }
    unsafe fn deleteWordForward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteWordForward : sender)
    }
    unsafe fn deleteWordBackward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteWordBackward : sender)
    }
    unsafe fn deleteToBeginningOfLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteToBeginningOfLine : sender)
    }
    unsafe fn deleteToEndOfLine_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteToEndOfLine : sender)
    }
    unsafe fn deleteToBeginningOfParagraph_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteToBeginningOfParagraph : sender)
    }
    unsafe fn deleteToEndOfParagraph_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteToEndOfParagraph : sender)
    }
    unsafe fn yank_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, yank : sender)
    }
    unsafe fn complete_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, complete : sender)
    }
    unsafe fn setMark_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMark : sender)
    }
    unsafe fn deleteToMark_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteToMark : sender)
    }
    unsafe fn selectToMark_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectToMark : sender)
    }
    unsafe fn swapWithMark_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, swapWithMark : sender)
    }
    unsafe fn cancelOperation_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cancelOperation : sender)
    }
    unsafe fn makeBaseWritingDirectionNatural_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeBaseWritingDirectionNatural : sender)
    }
    unsafe fn makeBaseWritingDirectionLeftToRight_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeBaseWritingDirectionLeftToRight : sender)
    }
    unsafe fn makeBaseWritingDirectionRightToLeft_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeBaseWritingDirectionRightToLeft : sender)
    }
    unsafe fn makeTextWritingDirectionNatural_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeTextWritingDirectionNatural : sender)
    }
    unsafe fn makeTextWritingDirectionLeftToRight_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeTextWritingDirectionLeftToRight : sender)
    }
    unsafe fn makeTextWritingDirectionRightToLeft_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeTextWritingDirectionRightToLeft : sender)
    }
    unsafe fn quickLookPreviewItems_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, quickLookPreviewItems : sender)
    }
    unsafe fn showContextMenuForSelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showContextMenuForSelection : sender)
    }
}
impl NSResponder_NSStandardKeyBindingMethods for NSResponder {}
impl NSResponder_NSUndoSupport for NSResponder {}
impl NSResponder_NSControlEditingSupport for NSResponder {}
impl NSResponder_NSErrorPresentation for NSResponder {}
impl NSResponder_NSTextFinderSupport for NSResponder {}
impl NSResponder_NSWindowTabbing for NSResponder {}
impl NSResponder_NSWritingToolsSupport for NSResponder {}
impl NSResponder_NSDeprecated for NSResponder {}
pub trait PNSValidatedUserInterfaceItem: Sized + std::ops::Deref {
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
}
pub trait PNSUserInterfaceValidations: Sized + std::ops::Deref {
    unsafe fn validateUserInterfaceItem_(&self, item: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateUserInterfaceItem : item)
    }
}
pub type NSApplicationActivationOptions = NSUInteger;
pub type NSApplicationActivationPolicy = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSRunningApplication(pub id);
impl std::ops::Deref for NSRunningApplication {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSRunningApplication {}
impl NSRunningApplication {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSRunningApplication").unwrap(), alloc) })
    }
}
impl INSObject for NSRunningApplication {}
impl PNSObject for NSRunningApplication {}
impl std::convert::TryFrom<NSObject> for NSRunningApplication {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSRunningApplication, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSRunningApplication").unwrap()) };
        if is_kind_of {
            Ok(NSRunningApplication(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSRunningApplication")
        }
    }
}
impl INSRunningApplication for NSRunningApplication {}
pub trait INSRunningApplication: Sized + std::ops::Deref {
    unsafe fn hide(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hide)
    }
    unsafe fn unhide(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unhide)
    }
    unsafe fn activateFromApplication_options_(
        &self,
        application: NSRunningApplication,
        options: NSApplicationActivationOptions,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activateFromApplication : application, options : options)
    }
    unsafe fn activateWithOptions_(&self, options: NSApplicationActivationOptions) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activateWithOptions : options)
    }
    unsafe fn terminate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, terminate)
    }
    unsafe fn forceTerminate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, forceTerminate)
    }
    unsafe fn isTerminated(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTerminated)
    }
    unsafe fn isFinishedLaunching(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFinishedLaunching)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn isActive(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isActive)
    }
    unsafe fn ownsMenuBar(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ownsMenuBar)
    }
    unsafe fn activationPolicy(&self) -> NSApplicationActivationPolicy
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activationPolicy)
    }
    unsafe fn localizedName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedName)
    }
    unsafe fn bundleIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bundleIdentifier)
    }
    unsafe fn bundleURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bundleURL)
    }
    unsafe fn executableURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, executableURL)
    }
    unsafe fn processIdentifier(&self) -> pid_t
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, processIdentifier)
    }
    unsafe fn launchDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, launchDate)
    }
    unsafe fn icon(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, icon)
    }
    unsafe fn executableArchitecture(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, executableArchitecture)
    }
    unsafe fn runningApplicationsWithBundleIdentifier_(bundleIdentifier: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSRunningApplication").unwrap(), runningApplicationsWithBundleIdentifier : bundleIdentifier)
    }
    unsafe fn runningApplicationWithProcessIdentifier_(pid: pid_t) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSRunningApplication").unwrap(), runningApplicationWithProcessIdentifier : pid)
    }
    unsafe fn terminateAutomaticallyTerminableApplications()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSRunningApplication").unwrap(), terminateAutomaticallyTerminableApplications)
    }
    unsafe fn currentApplication() -> NSRunningApplication
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSRunningApplication").unwrap(), currentApplication)
    }
}
impl NSWorkspace_NSWorkspaceRunningApplications for NSWorkspace {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSNib(pub id);
impl std::ops::Deref for NSNib {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSNib {}
impl NSNib {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSNib").unwrap(), alloc) })
    }
}
impl PNSCoding for NSNib {}
impl INSObject for NSNib {}
impl PNSObject for NSNib {}
impl std::convert::TryFrom<NSObject> for NSNib {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSNib, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSNib").unwrap()) };
        if is_kind_of {
            Ok(NSNib(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSNib")
        }
    }
}
impl INSNib for NSNib {}
pub trait INSNib: Sized + std::ops::Deref {
    unsafe fn initWithNibNamed_bundle_(&self, nibName: NSString, bundle: NSBundle) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNibNamed : nibName, bundle : bundle)
    }
    unsafe fn initWithNibData_bundle_(&self, nibData: NSData, bundle: NSBundle) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNibData : nibData, bundle : bundle)
    }
    unsafe fn instantiateWithOwner_topLevelObjects_(
        &self,
        owner: id,
        topLevelObjects: *mut NSArray,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, instantiateWithOwner : owner, topLevelObjects : topLevelObjects)
    }
}
impl NSNib_NSDeprecated for NSNib {}
pub trait PNSUserInterfaceItemIdentification: Sized + std::ops::Deref {
    unsafe fn identifier(&self) -> NSUserInterfaceItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
}
pub type NSAnimationCurve = NSUInteger;
pub type NSAnimationBlockingMode = NSUInteger;
pub type NSAnimationProgress = f32;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAnimation(pub id);
impl std::ops::Deref for NSAnimation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAnimation {}
impl NSAnimation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimation").unwrap(), alloc) })
    }
}
impl PNSCopying for NSAnimation {}
impl PNSCoding for NSAnimation {}
impl INSObject for NSAnimation {}
impl PNSObject for NSAnimation {}
impl std::convert::TryFrom<NSObject> for NSAnimation {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAnimation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAnimation").unwrap()) };
        if is_kind_of {
            Ok(NSAnimation(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAnimation")
        }
    }
}
impl INSAnimation for NSAnimation {}
pub trait INSAnimation: Sized + std::ops::Deref {
    unsafe fn initWithDuration_animationCurve_(
        &self,
        duration: NSTimeInterval,
        animationCurve: NSAnimationCurve,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDuration : duration, animationCurve : animationCurve)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn startAnimation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startAnimation)
    }
    unsafe fn stopAnimation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stopAnimation)
    }
    unsafe fn addProgressMark_(&self, progressMark: NSAnimationProgress)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addProgressMark : progressMark)
    }
    unsafe fn removeProgressMark_(&self, progressMark: NSAnimationProgress)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeProgressMark : progressMark)
    }
    unsafe fn startWhenAnimation_reachesProgress_(
        &self,
        animation: NSAnimation,
        startProgress: NSAnimationProgress,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startWhenAnimation : animation, reachesProgress : startProgress)
    }
    unsafe fn stopWhenAnimation_reachesProgress_(
        &self,
        animation: NSAnimation,
        stopProgress: NSAnimationProgress,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopWhenAnimation : animation, reachesProgress : stopProgress)
    }
    unsafe fn clearStartAnimation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clearStartAnimation)
    }
    unsafe fn clearStopAnimation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clearStopAnimation)
    }
    unsafe fn isAnimating(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAnimating)
    }
    unsafe fn currentProgress(&self) -> NSAnimationProgress
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentProgress)
    }
    unsafe fn setCurrentProgress_(&self, currentProgress: NSAnimationProgress)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCurrentProgress : currentProgress)
    }
    unsafe fn duration(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, duration)
    }
    unsafe fn setDuration_(&self, duration: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDuration : duration)
    }
    unsafe fn animationBlockingMode(&self) -> NSAnimationBlockingMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animationBlockingMode)
    }
    unsafe fn setAnimationBlockingMode_(&self, animationBlockingMode: NSAnimationBlockingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimationBlockingMode : animationBlockingMode)
    }
    unsafe fn frameRate(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frameRate)
    }
    unsafe fn setFrameRate_(&self, frameRate: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameRate : frameRate)
    }
    unsafe fn animationCurve(&self) -> NSAnimationCurve
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animationCurve)
    }
    unsafe fn setAnimationCurve_(&self, animationCurve: NSAnimationCurve)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimationCurve : animationCurve)
    }
    unsafe fn currentValue(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentValue)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn progressMarks(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, progressMarks)
    }
    unsafe fn setProgressMarks_(&self, progressMarks: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setProgressMarks : progressMarks)
    }
    unsafe fn runLoopModesForAnimating(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, runLoopModesForAnimating)
    }
}
pub trait PNSAnimationDelegate: Sized + std::ops::Deref {
    unsafe fn animationShouldStart_(&self, animation: NSAnimation) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animationShouldStart : animation)
    }
    unsafe fn animationDidStop_(&self, animation: NSAnimation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animationDidStop : animation)
    }
    unsafe fn animationDidEnd_(&self, animation: NSAnimation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animationDidEnd : animation)
    }
    unsafe fn animation_valueForProgress_(
        &self,
        animation: NSAnimation,
        progress: NSAnimationProgress,
    ) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animation : animation, valueForProgress : progress)
    }
    unsafe fn animation_didReachProgressMark_(
        &self,
        animation: NSAnimation,
        progress: NSAnimationProgress,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animation : animation, didReachProgressMark : progress)
    }
}
pub type NSViewAnimationKey = NSString;
pub type NSViewAnimationEffectName = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSViewAnimation(pub id);
impl std::ops::Deref for NSViewAnimation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSViewAnimation {}
impl NSViewAnimation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSViewAnimation").unwrap(), alloc) })
    }
}
impl INSAnimation for NSViewAnimation {}
impl PNSCopying for NSViewAnimation {}
impl PNSCoding for NSViewAnimation {}
impl From<NSViewAnimation> for NSAnimation {
    fn from(child: NSViewAnimation) -> NSAnimation {
        NSAnimation(child.0)
    }
}
impl std::convert::TryFrom<NSAnimation> for NSViewAnimation {
    type Error = &'static str;
    fn try_from(parent: NSAnimation) -> Result<NSViewAnimation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSViewAnimation").unwrap()) };
        if is_kind_of {
            Ok(NSViewAnimation(parent.0))
        } else {
            Err("This NSAnimation cannot be downcasted to NSViewAnimation")
        }
    }
}
impl INSObject for NSViewAnimation {}
impl PNSObject for NSViewAnimation {}
impl INSViewAnimation for NSViewAnimation {}
pub trait INSViewAnimation: Sized + std::ops::Deref {
    unsafe fn initWithViewAnimations_(&self, viewAnimations: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithViewAnimations : viewAnimations)
    }
    unsafe fn viewAnimations(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewAnimations)
    }
    unsafe fn setViewAnimations_(&self, viewAnimations: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setViewAnimations : viewAnimations)
    }
}
pub type NSAnimatablePropertyKey = NSString;
pub trait PNSAnimatablePropertyContainer: Sized + std::ops::Deref {
    unsafe fn animator(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animator)
    }
    unsafe fn animationForKey_(&self, key: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animationForKey : key)
    }
    unsafe fn animations(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animations)
    }
    unsafe fn setAnimations_(&self, animations: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimations : animations)
    }
    unsafe fn defaultAnimationForKey_(key: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimatablePropertyContainer").unwrap(), defaultAnimationForKey : key)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAppearance(pub id);
impl std::ops::Deref for NSAppearance {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAppearance {}
impl NSAppearance {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAppearance").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSAppearance {}
impl INSObject for NSAppearance {}
impl PNSObject for NSAppearance {}
impl std::convert::TryFrom<NSObject> for NSAppearance {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAppearance, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAppearance").unwrap()) };
        if is_kind_of {
            Ok(NSAppearance(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAppearance")
        }
    }
}
impl INSAppearance for NSAppearance {}
pub trait INSAppearance: Sized + std::ops::Deref {
    unsafe fn performAsCurrentDrawingAppearance_(&self, block: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performAsCurrentDrawingAppearance : block)
    }
    unsafe fn initWithAppearanceNamed_bundle_(
        &self,
        name: NSString,
        bundle: NSBundle,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAppearanceNamed : name, bundle : bundle)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn bestMatchFromAppearancesWithNames_(&self, appearances: NSArray) -> NSAppearanceName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, bestMatchFromAppearancesWithNames : appearances)
    }
    unsafe fn name(&self) -> NSAppearanceName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn allowsVibrancy(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsVibrancy)
    }
    unsafe fn appearanceNamed_(name: NSString) -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAppearance").unwrap(), appearanceNamed : name)
    }
    unsafe fn currentAppearance() -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAppearance").unwrap(), currentAppearance)
    }
    unsafe fn setCurrentAppearance_(currentAppearance: NSAppearance)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAppearance").unwrap(), setCurrentAppearance : currentAppearance)
    }
    unsafe fn currentDrawingAppearance() -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAppearance").unwrap(), currentDrawingAppearance)
    }
}
pub trait PNSAppearanceCustomization: Sized + std::ops::Deref {
    unsafe fn appearance(&self) -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, appearance)
    }
    unsafe fn setAppearance_(&self, appearance: NSAppearance)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAppearance : appearance)
    }
    unsafe fn effectiveAppearance(&self) -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveAppearance)
    }
}
pub type NSDragOperation = NSUInteger;
pub type NSDraggingFormation = NSInteger;
pub type NSDraggingContext = NSInteger;
pub type NSDraggingItemEnumerationOptions = NSUInteger;
pub type NSSpringLoadingHighlight = NSInteger;
pub trait PNSDraggingInfo: Sized + std::ops::Deref {
    unsafe fn slideDraggedImageTo_(&self, screenPoint: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, slideDraggedImageTo : screenPoint)
    }
    unsafe fn namesOfPromisedFilesDroppedAtDestination_(&self, dropDestination: NSURL) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, namesOfPromisedFilesDroppedAtDestination : dropDestination)
    }
    unsafe fn enumerateDraggingItemsWithOptions_forView_classes_searchOptions_usingBlock_(
        &self,
        enumOpts: NSDraggingItemEnumerationOptions,
        view: NSView,
        classArray: NSArray,
        searchOptions: NSDictionary,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateDraggingItemsWithOptions : enumOpts, forView : view, classes : classArray, searchOptions : searchOptions, usingBlock : block)
    }
    unsafe fn resetSpringLoading(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resetSpringLoading)
    }
    unsafe fn draggingDestinationWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingDestinationWindow)
    }
    unsafe fn draggingSourceOperationMask(&self) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingSourceOperationMask)
    }
    unsafe fn draggingLocation(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingLocation)
    }
    unsafe fn draggedImageLocation(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggedImageLocation)
    }
    unsafe fn draggedImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggedImage)
    }
    unsafe fn draggingPasteboard(&self) -> NSPasteboard
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingPasteboard)
    }
    unsafe fn draggingSource(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingSource)
    }
    unsafe fn draggingSequenceNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingSequenceNumber)
    }
    unsafe fn draggingFormation(&self) -> NSDraggingFormation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingFormation)
    }
    unsafe fn setDraggingFormation_(&self, draggingFormation: NSDraggingFormation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingFormation : draggingFormation)
    }
    unsafe fn animatesToDestination(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animatesToDestination)
    }
    unsafe fn setAnimatesToDestination_(&self, animatesToDestination: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimatesToDestination : animatesToDestination)
    }
    unsafe fn numberOfValidItemsForDrop(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfValidItemsForDrop)
    }
    unsafe fn setNumberOfValidItemsForDrop_(&self, numberOfValidItemsForDrop: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfValidItemsForDrop : numberOfValidItemsForDrop)
    }
    unsafe fn springLoadingHighlight(&self) -> NSSpringLoadingHighlight
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, springLoadingHighlight)
    }
}
pub trait PNSDraggingDestination: Sized + std::ops::Deref {
    unsafe fn draggingEntered_(&self, sender: *mut u64) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingEntered : sender)
    }
    unsafe fn draggingUpdated_(&self, sender: *mut u64) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingUpdated : sender)
    }
    unsafe fn draggingExited_(&self, sender: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingExited : sender)
    }
    unsafe fn prepareForDragOperation_(&self, sender: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, prepareForDragOperation : sender)
    }
    unsafe fn performDragOperation_(&self, sender: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performDragOperation : sender)
    }
    unsafe fn concludeDragOperation_(&self, sender: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, concludeDragOperation : sender)
    }
    unsafe fn draggingEnded_(&self, sender: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingEnded : sender)
    }
    unsafe fn wantsPeriodicDraggingUpdates(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsPeriodicDraggingUpdates)
    }
    unsafe fn updateDraggingItemsForDrag_(&self, sender: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateDraggingItemsForDrag : sender)
    }
}
pub trait PNSDraggingSource: Sized + std::ops::Deref {
    unsafe fn draggingSession_sourceOperationMaskForDraggingContext_(
        &self,
        session: NSDraggingSession,
        context: NSDraggingContext,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingSession : session, sourceOperationMaskForDraggingContext : context)
    }
    unsafe fn draggingSession_willBeginAtPoint_(
        &self,
        session: NSDraggingSession,
        screenPoint: NSPoint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingSession : session, willBeginAtPoint : screenPoint)
    }
    unsafe fn draggingSession_movedToPoint_(&self, session: NSDraggingSession, screenPoint: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingSession : session, movedToPoint : screenPoint)
    }
    unsafe fn draggingSession_endedAtPoint_operation_(
        &self,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        operation: NSDragOperation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingSession : session, endedAtPoint : screenPoint, operation : operation)
    }
    unsafe fn ignoreModifierKeysForDraggingSession_(&self, session: NSDraggingSession) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ignoreModifierKeysForDraggingSession : session)
    }
}
pub type NSSpringLoadingOptions = NSUInteger;
pub trait PNSSpringLoadingDestination: Sized + std::ops::Deref {
    unsafe fn springLoadingActivated_draggingInfo_(&self, activated: BOOL, draggingInfo: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, springLoadingActivated : activated, draggingInfo : draggingInfo)
    }
    unsafe fn springLoadingHighlightChanged_(&self, draggingInfo: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, springLoadingHighlightChanged : draggingInfo)
    }
    unsafe fn springLoadingEntered_(&self, draggingInfo: *mut u64) -> NSSpringLoadingOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, springLoadingEntered : draggingInfo)
    }
    unsafe fn springLoadingUpdated_(&self, draggingInfo: *mut u64) -> NSSpringLoadingOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, springLoadingUpdated : draggingInfo)
    }
    unsafe fn springLoadingExited_(&self, draggingInfo: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, springLoadingExited : draggingInfo)
    }
    unsafe fn draggingEnded_(&self, draggingInfo: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingEnded : draggingInfo)
    }
}
pub type NSUserInterfaceLayoutDirection = NSInteger;
pub type NSUserInterfaceLayoutOrientation = NSInteger;
pub type NSAutoresizingMaskOptions = NSUInteger;
pub type NSBorderType = NSUInteger;
pub type NSViewLayerContentsRedrawPolicy = NSInteger;
pub type NSViewLayerContentsPlacement = NSInteger;
pub type NSTrackingRectTag = NSInteger;
pub type NSToolTipTag = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSView(pub id);
impl std::ops::Deref for NSView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSView {}
impl NSView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSView").unwrap(), alloc) })
    }
}
impl PNSAnimatablePropertyContainer for NSView {}
impl PNSUserInterfaceItemIdentification for NSView {}
impl PNSDraggingDestination for NSView {}
impl PNSAppearanceCustomization for NSView {}
impl PNSAccessibilityElement for NSView {}
impl PNSAccessibility for NSView {}
impl INSResponder for NSView {}
impl PNSCoding for NSView {}
impl From<NSView> for NSResponder {
    fn from(child: NSView) -> NSResponder {
        NSResponder(child.0)
    }
}
impl std::convert::TryFrom<NSResponder> for NSView {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSView, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSView").unwrap()) };
        if is_kind_of {
            Ok(NSView(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSView")
        }
    }
}
impl INSObject for NSView {}
impl PNSObject for NSView {}
impl INSView for NSView {}
pub trait INSView: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn isDescendantOf_(&self, view: NSView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isDescendantOf : view)
    }
    unsafe fn ancestorSharedWithView_(&self, view: NSView) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ancestorSharedWithView : view)
    }
    unsafe fn getRectsBeingDrawn_count_(&self, rects: *mut *const NSRect, count: *mut NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRectsBeingDrawn : rects, count : count)
    }
    unsafe fn needsToDrawRect_(&self, rect: NSRect) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, needsToDrawRect : rect)
    }
    unsafe fn viewDidHide(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidHide)
    }
    unsafe fn viewDidUnhide(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidUnhide)
    }
    unsafe fn addSubview_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSubview : view)
    }
    unsafe fn addSubview_positioned_relativeTo_(
        &self,
        view: NSView,
        place: NSWindowOrderingMode,
        otherView: NSView,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSubview : view, positioned : place, relativeTo : otherView)
    }
    unsafe fn sortSubviewsUsingFunction_context_(
        &self,
        compare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: NSView,
                arg2: NSView,
                arg3: *mut ::std::os::raw::c_void,
            ) -> NSComparisonResult,
        >,
        context: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sortSubviewsUsingFunction : compare, context : context)
    }
    unsafe fn viewWillMoveToWindow_(&self, newWindow: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewWillMoveToWindow : newWindow)
    }
    unsafe fn viewDidMoveToWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidMoveToWindow)
    }
    unsafe fn viewWillMoveToSuperview_(&self, newSuperview: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewWillMoveToSuperview : newSuperview)
    }
    unsafe fn viewDidMoveToSuperview(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidMoveToSuperview)
    }
    unsafe fn didAddSubview_(&self, subview: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didAddSubview : subview)
    }
    unsafe fn willRemoveSubview_(&self, subview: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, willRemoveSubview : subview)
    }
    unsafe fn removeFromSuperview(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeFromSuperview)
    }
    unsafe fn replaceSubview_with_(&self, oldView: NSView, newView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceSubview : oldView, with : newView)
    }
    unsafe fn removeFromSuperviewWithoutNeedingDisplay(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeFromSuperviewWithoutNeedingDisplay)
    }
    unsafe fn viewDidChangeBackingProperties(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidChangeBackingProperties)
    }
    unsafe fn resizeSubviewsWithOldSize_(&self, oldSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resizeSubviewsWithOldSize : oldSize)
    }
    unsafe fn resizeWithOldSuperviewSize_(&self, oldSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resizeWithOldSuperviewSize : oldSize)
    }
    unsafe fn setFrameOrigin_(&self, newOrigin: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameOrigin : newOrigin)
    }
    unsafe fn setFrameSize_(&self, newSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameSize : newSize)
    }
    unsafe fn setBoundsOrigin_(&self, newOrigin: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBoundsOrigin : newOrigin)
    }
    unsafe fn setBoundsSize_(&self, newSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBoundsSize : newSize)
    }
    unsafe fn translateOriginToPoint_(&self, translation: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, translateOriginToPoint : translation)
    }
    unsafe fn scaleUnitSquareToSize_(&self, newUnitSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scaleUnitSquareToSize : newUnitSize)
    }
    unsafe fn rotateByAngle_(&self, angle: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rotateByAngle : angle)
    }
    unsafe fn convertPoint_fromView_(&self, point: NSPoint, view: NSView) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPoint : point, fromView : view)
    }
    unsafe fn convertPoint_toView_(&self, point: NSPoint, view: NSView) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPoint : point, toView : view)
    }
    unsafe fn convertSize_fromView_(&self, size: NSSize, view: NSView) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertSize : size, fromView : view)
    }
    unsafe fn convertSize_toView_(&self, size: NSSize, view: NSView) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertSize : size, toView : view)
    }
    unsafe fn convertRect_fromView_(&self, rect: NSRect, view: NSView) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRect : rect, fromView : view)
    }
    unsafe fn convertRect_toView_(&self, rect: NSRect, view: NSView) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRect : rect, toView : view)
    }
    unsafe fn backingAlignedRect_options_(
        &self,
        rect: NSRect,
        options: NSAlignmentOptions,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, backingAlignedRect : rect, options : options)
    }
    unsafe fn centerScanRect_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, centerScanRect : rect)
    }
    unsafe fn convertPointToBacking_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointToBacking : point)
    }
    unsafe fn convertPointFromBacking_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointFromBacking : point)
    }
    unsafe fn convertSizeToBacking_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertSizeToBacking : size)
    }
    unsafe fn convertSizeFromBacking_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertSizeFromBacking : size)
    }
    unsafe fn convertRectToBacking_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectToBacking : rect)
    }
    unsafe fn convertRectFromBacking_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectFromBacking : rect)
    }
    unsafe fn convertPointToLayer_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointToLayer : point)
    }
    unsafe fn convertPointFromLayer_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointFromLayer : point)
    }
    unsafe fn convertSizeToLayer_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertSizeToLayer : size)
    }
    unsafe fn convertSizeFromLayer_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertSizeFromLayer : size)
    }
    unsafe fn convertRectToLayer_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectToLayer : rect)
    }
    unsafe fn convertRectFromLayer_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectFromLayer : rect)
    }
    unsafe fn setNeedsDisplayInRect_(&self, invalidRect_: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeedsDisplayInRect : invalidRect_)
    }
    unsafe fn lockFocus(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lockFocus)
    }
    unsafe fn unlockFocus(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unlockFocus)
    }
    unsafe fn lockFocusIfCanDraw(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lockFocusIfCanDraw)
    }
    unsafe fn lockFocusIfCanDrawInContext_(&self, context: NSGraphicsContext) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lockFocusIfCanDrawInContext : context)
    }
    unsafe fn display(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, display)
    }
    unsafe fn displayIfNeeded(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayIfNeeded)
    }
    unsafe fn displayIfNeededIgnoringOpacity(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayIfNeededIgnoringOpacity)
    }
    unsafe fn displayRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayRect : rect)
    }
    unsafe fn displayIfNeededInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayIfNeededInRect : rect)
    }
    unsafe fn displayRectIgnoringOpacity_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayRectIgnoringOpacity : rect)
    }
    unsafe fn displayIfNeededInRectIgnoringOpacity_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayIfNeededInRectIgnoringOpacity : rect)
    }
    unsafe fn drawRect_(&self, dirtyRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawRect : dirtyRect)
    }
    unsafe fn displayRectIgnoringOpacity_inContext_(&self, rect: NSRect, context: NSGraphicsContext)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayRectIgnoringOpacity : rect, inContext : context)
    }
    unsafe fn bitmapImageRepForCachingDisplayInRect_(&self, rect: NSRect) -> NSBitmapImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, bitmapImageRepForCachingDisplayInRect : rect)
    }
    unsafe fn cacheDisplayInRect_toBitmapImageRep_(
        &self,
        rect: NSRect,
        bitmapImageRep: NSBitmapImageRep,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cacheDisplayInRect : rect, toBitmapImageRep : bitmapImageRep)
    }
    unsafe fn viewWillDraw(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillDraw)
    }
    unsafe fn scrollPoint_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollPoint : point)
    }
    unsafe fn scrollRectToVisible_(&self, rect: NSRect) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollRectToVisible : rect)
    }
    unsafe fn autoscroll_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, autoscroll : event)
    }
    unsafe fn adjustScroll_(&self, newVisible: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, adjustScroll : newVisible)
    }
    unsafe fn scrollRect_by_(&self, rect: NSRect, delta: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollRect : rect, by : delta)
    }
    unsafe fn translateRectsNeedingDisplayInRect_by_(&self, clipRect: NSRect, delta: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, translateRectsNeedingDisplayInRect : clipRect, by : delta)
    }
    unsafe fn hitTest_(&self, point: NSPoint) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, hitTest : point)
    }
    unsafe fn mouse_inRect_(&self, point: NSPoint, rect: NSRect) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouse : point, inRect : rect)
    }
    unsafe fn viewWithTag_(&self, tag: NSInteger) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewWithTag : tag)
    }
    unsafe fn performKeyEquivalent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performKeyEquivalent : event)
    }
    unsafe fn acceptsFirstMouse_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, acceptsFirstMouse : event)
    }
    unsafe fn shouldDelayWindowOrderingForEvent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldDelayWindowOrderingForEvent : event)
    }
    unsafe fn makeBackingLayer(&self) -> CALayer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeBackingLayer)
    }
    unsafe fn updateLayer(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateLayer)
    }
    unsafe fn layoutSubtreeIfNeeded(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutSubtreeIfNeeded)
    }
    unsafe fn layout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layout)
    }
    unsafe fn menuForEvent_(&self, event: NSEvent) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuForEvent : event)
    }
    unsafe fn willOpenMenu_withEvent_(&self, menu: NSMenu, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, willOpenMenu : menu, withEvent : event)
    }
    unsafe fn didCloseMenu_withEvent_(&self, menu: NSMenu, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didCloseMenu : menu, withEvent : event)
    }
    unsafe fn addToolTipRect_owner_userData_(
        &self,
        rect: NSRect,
        owner: id,
        data: *mut ::std::os::raw::c_void,
    ) -> NSToolTipTag
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addToolTipRect : rect, owner : owner, userData : data)
    }
    unsafe fn removeToolTip_(&self, tag: NSToolTipTag)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeToolTip : tag)
    }
    unsafe fn removeAllToolTips(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllToolTips)
    }
    unsafe fn viewWillStartLiveResize(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillStartLiveResize)
    }
    unsafe fn viewDidEndLiveResize(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidEndLiveResize)
    }
    unsafe fn getRectsExposedDuringLiveResize_count_(
        &self,
        exposedRects: *mut NSRect,
        count: *mut NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRectsExposedDuringLiveResize : exposedRects, count : count)
    }
    unsafe fn rectForSmartMagnificationAtPoint_inRect_(
        &self,
        location: NSPoint,
        visibleRect: NSRect,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectForSmartMagnificationAtPoint : location, inRect : visibleRect)
    }
    unsafe fn prepareForReuse(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prepareForReuse)
    }
    unsafe fn prepareContentInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, prepareContentInRect : rect)
    }
    unsafe fn viewDidChangeEffectiveAppearance(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidChangeEffectiveAppearance)
    }
    unsafe fn window(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, window)
    }
    unsafe fn superview(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, superview)
    }
    unsafe fn subviews(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subviews)
    }
    unsafe fn setSubviews_(&self, subviews: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubviews : subviews)
    }
    unsafe fn opaqueAncestor(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, opaqueAncestor)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn isHiddenOrHasHiddenAncestor(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHiddenOrHasHiddenAncestor)
    }
    unsafe fn wantsDefaultClipping(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsDefaultClipping)
    }
    unsafe fn postsFrameChangedNotifications(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, postsFrameChangedNotifications)
    }
    unsafe fn setPostsFrameChangedNotifications_(&self, postsFrameChangedNotifications: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPostsFrameChangedNotifications : postsFrameChangedNotifications)
    }
    unsafe fn autoresizesSubviews(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autoresizesSubviews)
    }
    unsafe fn setAutoresizesSubviews_(&self, autoresizesSubviews: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoresizesSubviews : autoresizesSubviews)
    }
    unsafe fn autoresizingMask(&self) -> NSAutoresizingMaskOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autoresizingMask)
    }
    unsafe fn setAutoresizingMask_(&self, autoresizingMask: NSAutoresizingMaskOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoresizingMask : autoresizingMask)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn setFrame_(&self, frame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frame)
    }
    unsafe fn frameRotation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frameRotation)
    }
    unsafe fn setFrameRotation_(&self, frameRotation: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameRotation : frameRotation)
    }
    unsafe fn frameCenterRotation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frameCenterRotation)
    }
    unsafe fn setFrameCenterRotation_(&self, frameCenterRotation: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameCenterRotation : frameCenterRotation)
    }
    unsafe fn boundsRotation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boundsRotation)
    }
    unsafe fn setBoundsRotation_(&self, boundsRotation: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBoundsRotation : boundsRotation)
    }
    unsafe fn bounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bounds)
    }
    unsafe fn setBounds_(&self, bounds: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBounds : bounds)
    }
    unsafe fn isFlipped(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFlipped)
    }
    unsafe fn isRotatedFromBase(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRotatedFromBase)
    }
    unsafe fn isRotatedOrScaledFromBase(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRotatedOrScaledFromBase)
    }
    unsafe fn isOpaque(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpaque)
    }
    unsafe fn canDrawConcurrently(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canDrawConcurrently)
    }
    unsafe fn setCanDrawConcurrently_(&self, canDrawConcurrently: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanDrawConcurrently : canDrawConcurrently)
    }
    unsafe fn canDraw(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canDraw)
    }
    unsafe fn needsDisplay(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, needsDisplay)
    }
    unsafe fn setNeedsDisplay_(&self, needsDisplay: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeedsDisplay : needsDisplay)
    }
    unsafe fn visibleRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleRect)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn needsPanelToBecomeKey(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, needsPanelToBecomeKey)
    }
    unsafe fn mouseDownCanMoveWindow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mouseDownCanMoveWindow)
    }
    unsafe fn acceptsTouchEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, acceptsTouchEvents)
    }
    unsafe fn setAcceptsTouchEvents_(&self, acceptsTouchEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAcceptsTouchEvents : acceptsTouchEvents)
    }
    unsafe fn wantsRestingTouches(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsRestingTouches)
    }
    unsafe fn setWantsRestingTouches_(&self, wantsRestingTouches: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWantsRestingTouches : wantsRestingTouches)
    }
    unsafe fn layerContentsRedrawPolicy(&self) -> NSViewLayerContentsRedrawPolicy
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layerContentsRedrawPolicy)
    }
    unsafe fn setLayerContentsRedrawPolicy_(
        &self,
        layerContentsRedrawPolicy: NSViewLayerContentsRedrawPolicy,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayerContentsRedrawPolicy : layerContentsRedrawPolicy)
    }
    unsafe fn layerContentsPlacement(&self) -> NSViewLayerContentsPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layerContentsPlacement)
    }
    unsafe fn setLayerContentsPlacement_(
        &self,
        layerContentsPlacement: NSViewLayerContentsPlacement,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayerContentsPlacement : layerContentsPlacement)
    }
    unsafe fn wantsLayer(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsLayer)
    }
    unsafe fn setWantsLayer_(&self, wantsLayer: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWantsLayer : wantsLayer)
    }
    unsafe fn layer(&self) -> CALayer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layer)
    }
    unsafe fn setLayer_(&self, layer: CALayer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayer : layer)
    }
    unsafe fn wantsUpdateLayer(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsUpdateLayer)
    }
    unsafe fn canDrawSubviewsIntoLayer(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canDrawSubviewsIntoLayer)
    }
    unsafe fn setCanDrawSubviewsIntoLayer_(&self, canDrawSubviewsIntoLayer: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanDrawSubviewsIntoLayer : canDrawSubviewsIntoLayer)
    }
    unsafe fn needsLayout(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, needsLayout)
    }
    unsafe fn setNeedsLayout_(&self, needsLayout: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeedsLayout : needsLayout)
    }
    unsafe fn alphaValue(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alphaValue)
    }
    unsafe fn setAlphaValue_(&self, alphaValue: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlphaValue : alphaValue)
    }
    unsafe fn layerUsesCoreImageFilters(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layerUsesCoreImageFilters)
    }
    unsafe fn setLayerUsesCoreImageFilters_(&self, layerUsesCoreImageFilters: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayerUsesCoreImageFilters : layerUsesCoreImageFilters)
    }
    unsafe fn backgroundFilters(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundFilters)
    }
    unsafe fn setBackgroundFilters_(&self, backgroundFilters: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundFilters : backgroundFilters)
    }
    unsafe fn compositingFilter(&self) -> CIFilter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, compositingFilter)
    }
    unsafe fn setCompositingFilter_(&self, compositingFilter: CIFilter)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompositingFilter : compositingFilter)
    }
    unsafe fn contentFilters(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentFilters)
    }
    unsafe fn setContentFilters_(&self, contentFilters: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentFilters : contentFilters)
    }
    unsafe fn shadow(&self) -> NSShadow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shadow)
    }
    unsafe fn setShadow_(&self, shadow_: NSShadow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShadow : shadow_)
    }
    unsafe fn clipsToBounds(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clipsToBounds)
    }
    unsafe fn setClipsToBounds_(&self, clipsToBounds: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setClipsToBounds : clipsToBounds)
    }
    unsafe fn postsBoundsChangedNotifications(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, postsBoundsChangedNotifications)
    }
    unsafe fn setPostsBoundsChangedNotifications_(&self, postsBoundsChangedNotifications: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPostsBoundsChangedNotifications : postsBoundsChangedNotifications)
    }
    unsafe fn enclosingScrollView(&self) -> NSScrollView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enclosingScrollView)
    }
    unsafe fn toolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolTip)
    }
    unsafe fn setToolTip_(&self, toolTip: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip)
    }
    unsafe fn inLiveResize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, inLiveResize)
    }
    unsafe fn preservesContentDuringLiveResize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preservesContentDuringLiveResize)
    }
    unsafe fn rectPreservedDuringLiveResize(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rectPreservedDuringLiveResize)
    }
    unsafe fn inputContext(&self) -> NSTextInputContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, inputContext)
    }
    unsafe fn userInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInterfaceLayoutDirection)
    }
    unsafe fn setUserInterfaceLayoutDirection_(
        &self,
        userInterfaceLayoutDirection: NSUserInterfaceLayoutDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserInterfaceLayoutDirection : userInterfaceLayoutDirection)
    }
    unsafe fn preparedContentRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preparedContentRect)
    }
    unsafe fn setPreparedContentRect_(&self, preparedContentRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreparedContentRect : preparedContentRect)
    }
    unsafe fn allowsVibrancy(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsVibrancy)
    }
    unsafe fn focusView() -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSView").unwrap(), focusView)
    }
    unsafe fn defaultMenu() -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSView").unwrap(), defaultMenu)
    }
    unsafe fn isCompatibleWithResponsiveScrolling() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSView").unwrap(), isCompatibleWithResponsiveScrolling)
    }
}
pub trait PNSViewLayerContentScaleDelegate: Sized + std::ops::Deref {
    unsafe fn layer_shouldInheritContentsScale_fromWindow_(
        &self,
        layer: CALayer,
        newScale: CGFloat,
        window: NSWindow,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layer : layer, shouldInheritContentsScale : newScale, fromWindow : window)
    }
}
pub trait PNSViewToolTipOwner: Sized + std::ops::Deref {
    unsafe fn view_stringForToolTip_point_userData_(
        &self,
        view: NSView,
        tag: NSToolTipTag,
        point: NSPoint,
        data: *mut ::std::os::raw::c_void,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, view : view, stringForToolTip : tag, point : point, userData : data)
    }
}
pub trait PNSViewContentSelectionInfo: Sized + std::ops::Deref {
    unsafe fn selectionAnchorRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionAnchorRect)
    }
}
impl NSView_NSKeyboardUI for NSView {}
impl NSView_NSPrinting for NSView {}
impl NSView_NSDrag for NSView {}
pub type NSViewFullScreenModeOptionKey = NSString;
impl NSView_NSFullScreenMode for NSView {}
pub type NSDefinitionOptionKey = NSString;
pub type NSDefinitionPresentationType = NSString;
impl NSView_NSDefinition for NSView {}
impl NSView_NSFindIndicator for NSView {}
impl NSView_NSGestureRecognizer for NSView {}
impl NSView_NSTouchBar for NSView {}
impl NSView_NSSafeAreas for NSView {}
impl NSView_NSCompactControlSizeMetrics for NSView {}
impl NSView_NSTrackingArea for NSView {}
impl NSView_NSDisplayLink for NSView {}
impl NSView_NSDeprecated for NSView {}
impl NSView_NSWritingToolsCoordinator for NSView {}
pub type NSWritingDirection = NSInteger;
pub trait PNSChangeSpelling: Sized + std::ops::Deref {
    unsafe fn changeSpelling_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeSpelling : sender)
    }
}
pub trait PNSIgnoreMisspelledWords: Sized + std::ops::Deref {
    unsafe fn ignoreSpelling_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ignoreSpelling : sender)
    }
}
pub type NSTextAlignment = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSText(pub id);
impl std::ops::Deref for NSText {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSText {}
impl NSText {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSText").unwrap(), alloc) })
    }
}
impl PNSChangeSpelling for NSText {}
impl PNSIgnoreMisspelledWords for NSText {}
impl INSView for NSText {}
impl PNSAnimatablePropertyContainer for NSText {}
impl PNSUserInterfaceItemIdentification for NSText {}
impl PNSDraggingDestination for NSText {}
impl PNSAppearanceCustomization for NSText {}
impl PNSAccessibilityElement for NSText {}
impl PNSAccessibility for NSText {}
impl From<NSText> for NSView {
    fn from(child: NSText) -> NSView {
        NSView(child.0)
    }
}
impl std::convert::TryFrom<NSView> for NSText {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSText, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSText").unwrap()) };
        if is_kind_of {
            Ok(NSText(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSText")
        }
    }
}
impl INSResponder for NSText {}
impl PNSCoding for NSText {}
impl INSObject for NSText {}
impl PNSObject for NSText {}
impl INSText for NSText {}
pub trait INSText: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn replaceCharactersInRange_withString_(&self, range: NSRange, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceCharactersInRange : range, withString : string)
    }
    unsafe fn replaceCharactersInRange_withRTF_(&self, range: NSRange, rtfData: NSData)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceCharactersInRange : range, withRTF : rtfData)
    }
    unsafe fn replaceCharactersInRange_withRTFD_(&self, range: NSRange, rtfdData: NSData)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceCharactersInRange : range, withRTFD : rtfdData)
    }
    unsafe fn RTFFromRange_(&self, range: NSRange) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, RTFFromRange : range)
    }
    unsafe fn RTFDFromRange_(&self, range: NSRange) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, RTFDFromRange : range)
    }
    unsafe fn writeRTFDToFile_atomically_(&self, path: NSString, flag: BOOL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeRTFDToFile : path, atomically : flag)
    }
    unsafe fn readRTFDFromFile_(&self, path: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readRTFDFromFile : path)
    }
    unsafe fn scrollRangeToVisible_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollRangeToVisible : range)
    }
    unsafe fn setTextColor_range_(&self, color: NSColor, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextColor : color, range : range)
    }
    unsafe fn setFont_range_(&self, font: NSFont, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFont : font, range : range)
    }
    unsafe fn sizeToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToFit)
    }
    unsafe fn copy_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, copy : sender)
    }
    unsafe fn copyFont_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, copyFont : sender)
    }
    unsafe fn copyRuler_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, copyRuler : sender)
    }
    unsafe fn cut_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cut : sender)
    }
    unsafe fn delete_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, delete : sender)
    }
    unsafe fn paste_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, paste : sender)
    }
    unsafe fn pasteFont_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteFont : sender)
    }
    unsafe fn pasteRuler_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteRuler : sender)
    }
    unsafe fn selectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAll : sender)
    }
    unsafe fn changeFont_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeFont : sender)
    }
    unsafe fn alignLeft_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignLeft : sender)
    }
    unsafe fn alignRight_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignRight : sender)
    }
    unsafe fn alignCenter_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignCenter : sender)
    }
    unsafe fn subscript_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, subscript : sender)
    }
    unsafe fn superscript_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, superscript : sender)
    }
    unsafe fn underline_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, underline : sender)
    }
    unsafe fn unscript_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unscript : sender)
    }
    unsafe fn showGuessPanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showGuessPanel : sender)
    }
    unsafe fn checkSpelling_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkSpelling : sender)
    }
    unsafe fn toggleRuler_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleRuler : sender)
    }
    unsafe fn string(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, string)
    }
    unsafe fn setString_(&self, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setString : string)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn isSelectable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectable)
    }
    unsafe fn setSelectable_(&self, selectable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectable : selectable)
    }
    unsafe fn isRichText(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRichText)
    }
    unsafe fn setRichText_(&self, richText: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRichText : richText)
    }
    unsafe fn importsGraphics(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, importsGraphics)
    }
    unsafe fn setImportsGraphics_(&self, importsGraphics: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImportsGraphics : importsGraphics)
    }
    unsafe fn isFieldEditor(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFieldEditor)
    }
    unsafe fn setFieldEditor_(&self, fieldEditor: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFieldEditor : fieldEditor)
    }
    unsafe fn usesFontPanel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesFontPanel)
    }
    unsafe fn setUsesFontPanel_(&self, usesFontPanel: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesFontPanel : usesFontPanel)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn isRulerVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRulerVisible)
    }
    unsafe fn selectedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRange)
    }
    unsafe fn setSelectedRange_(&self, selectedRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedRange : selectedRange)
    }
    unsafe fn font(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, font)
    }
    unsafe fn setFont_(&self, font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFont : font)
    }
    unsafe fn textColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textColor)
    }
    unsafe fn setTextColor_(&self, textColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextColor : textColor)
    }
    unsafe fn alignment(&self) -> NSTextAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alignment)
    }
    unsafe fn setAlignment_(&self, alignment: NSTextAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignment : alignment)
    }
    unsafe fn baseWritingDirection(&self) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseWritingDirection)
    }
    unsafe fn setBaseWritingDirection_(&self, baseWritingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBaseWritingDirection : baseWritingDirection)
    }
    unsafe fn maxSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxSize)
    }
    unsafe fn setMaxSize_(&self, maxSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxSize : maxSize)
    }
    unsafe fn minSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minSize)
    }
    unsafe fn setMinSize_(&self, minSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinSize : minSize)
    }
    unsafe fn isHorizontallyResizable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHorizontallyResizable)
    }
    unsafe fn setHorizontallyResizable_(&self, horizontallyResizable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontallyResizable : horizontallyResizable)
    }
    unsafe fn isVerticallyResizable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVerticallyResizable)
    }
    unsafe fn setVerticallyResizable_(&self, verticallyResizable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticallyResizable : verticallyResizable)
    }
}
pub type NSTextMovement = NSInteger;
pub trait PNSTextDelegate: Sized + std::ops::Deref {
    unsafe fn textShouldBeginEditing_(&self, textObject: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textShouldBeginEditing : textObject)
    }
    unsafe fn textShouldEndEditing_(&self, textObject: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textShouldEndEditing : textObject)
    }
    unsafe fn textDidBeginEditing_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidBeginEditing : notification)
    }
    unsafe fn textDidEndEditing_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidEndEditing : notification)
    }
    unsafe fn textDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidChange : notification)
    }
}
pub type NSLineBreakMode = NSUInteger;
pub type NSLineBreakStrategy = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextTab(pub id);
impl std::ops::Deref for NSTextTab {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextTab {}
impl NSTextTab {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextTab").unwrap(), alloc) })
    }
}
impl PNSCopying for NSTextTab {}
impl PNSCoding for NSTextTab {}
impl PNSSecureCoding for NSTextTab {}
impl INSObject for NSTextTab {}
impl PNSObject for NSTextTab {}
impl std::convert::TryFrom<NSObject> for NSTextTab {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextTab, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextTab").unwrap()) };
        if is_kind_of {
            Ok(NSTextTab(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextTab")
        }
    }
}
impl INSTextTab for NSTextTab {}
pub trait INSTextTab: Sized + std::ops::Deref {
    unsafe fn location(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
    unsafe fn options(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, options)
    }
    unsafe fn columnTerminatorsForLocale_(aLocale: NSLocale) -> NSCharacterSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextTab").unwrap(), columnTerminatorsForLocale : aLocale)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSParagraphStyle(pub id);
impl std::ops::Deref for NSParagraphStyle {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSParagraphStyle {}
impl NSParagraphStyle {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSParagraphStyle").unwrap(), alloc) })
    }
}
impl PNSCopying for NSParagraphStyle {}
impl PNSMutableCopying for NSParagraphStyle {}
impl PNSSecureCoding for NSParagraphStyle {}
impl INSObject for NSParagraphStyle {}
impl PNSObject for NSParagraphStyle {}
impl std::convert::TryFrom<NSObject> for NSParagraphStyle {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSParagraphStyle, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSParagraphStyle").unwrap()) };
        if is_kind_of {
            Ok(NSParagraphStyle(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSParagraphStyle")
        }
    }
}
impl INSParagraphStyle for NSParagraphStyle {}
pub trait INSParagraphStyle: Sized + std::ops::Deref {
    unsafe fn lineSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineSpacing)
    }
    unsafe fn paragraphSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSpacing)
    }
    unsafe fn headIndent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headIndent)
    }
    unsafe fn tailIndent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tailIndent)
    }
    unsafe fn firstLineHeadIndent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstLineHeadIndent)
    }
    unsafe fn minimumLineHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumLineHeight)
    }
    unsafe fn maximumLineHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumLineHeight)
    }
    unsafe fn lineBreakMode(&self) -> NSLineBreakMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakMode)
    }
    unsafe fn baseWritingDirection(&self) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseWritingDirection)
    }
    unsafe fn lineHeightMultiple(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineHeightMultiple)
    }
    unsafe fn paragraphSpacingBefore(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSpacingBefore)
    }
    unsafe fn hyphenationFactor(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hyphenationFactor)
    }
    unsafe fn usesDefaultHyphenation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesDefaultHyphenation)
    }
    unsafe fn tabStops(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabStops)
    }
    unsafe fn defaultTabInterval(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultTabInterval)
    }
    unsafe fn textLists(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLists)
    }
    unsafe fn allowsDefaultTighteningForTruncation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsDefaultTighteningForTruncation)
    }
    unsafe fn lineBreakStrategy(&self) -> NSLineBreakStrategy
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakStrategy)
    }
    unsafe fn defaultWritingDirectionForLanguage_(languageName: NSString) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSParagraphStyle").unwrap(), defaultWritingDirectionForLanguage : languageName)
    }
    unsafe fn defaultParagraphStyle() -> NSParagraphStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSParagraphStyle").unwrap(), defaultParagraphStyle)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMutableParagraphStyle(pub id);
impl std::ops::Deref for NSMutableParagraphStyle {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMutableParagraphStyle {}
impl NSMutableParagraphStyle {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableParagraphStyle").unwrap(), alloc) })
    }
}
impl INSParagraphStyle for NSMutableParagraphStyle {}
impl PNSCopying for NSMutableParagraphStyle {}
impl PNSMutableCopying for NSMutableParagraphStyle {}
impl PNSSecureCoding for NSMutableParagraphStyle {}
impl From<NSMutableParagraphStyle> for NSParagraphStyle {
    fn from(child: NSMutableParagraphStyle) -> NSParagraphStyle {
        NSParagraphStyle(child.0)
    }
}
impl std::convert::TryFrom<NSParagraphStyle> for NSMutableParagraphStyle {
    type Error = &'static str;
    fn try_from(parent: NSParagraphStyle) -> Result<NSMutableParagraphStyle, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMutableParagraphStyle").unwrap()) };
        if is_kind_of {
            Ok(NSMutableParagraphStyle(parent.0))
        } else {
            Err("This NSParagraphStyle cannot be downcasted to NSMutableParagraphStyle")
        }
    }
}
impl INSObject for NSMutableParagraphStyle {}
impl PNSObject for NSMutableParagraphStyle {}
impl INSMutableParagraphStyle for NSMutableParagraphStyle {}
pub trait INSMutableParagraphStyle: Sized + std::ops::Deref {
    unsafe fn addTabStop_(&self, anObject: NSTextTab)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTabStop : anObject)
    }
    unsafe fn removeTabStop_(&self, anObject: NSTextTab)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTabStop : anObject)
    }
    unsafe fn setParagraphStyle_(&self, obj: NSParagraphStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setParagraphStyle : obj)
    }
    unsafe fn lineSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineSpacing)
    }
    unsafe fn setLineSpacing_(&self, lineSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineSpacing : lineSpacing)
    }
    unsafe fn paragraphSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSpacing)
    }
    unsafe fn setParagraphSpacing_(&self, paragraphSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setParagraphSpacing : paragraphSpacing)
    }
    unsafe fn firstLineHeadIndent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstLineHeadIndent)
    }
    unsafe fn setFirstLineHeadIndent_(&self, firstLineHeadIndent: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFirstLineHeadIndent : firstLineHeadIndent)
    }
    unsafe fn headIndent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headIndent)
    }
    unsafe fn setHeadIndent_(&self, headIndent: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeadIndent : headIndent)
    }
    unsafe fn tailIndent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tailIndent)
    }
    unsafe fn setTailIndent_(&self, tailIndent: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTailIndent : tailIndent)
    }
    unsafe fn lineBreakMode(&self) -> NSLineBreakMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakMode)
    }
    unsafe fn setLineBreakMode_(&self, lineBreakMode: NSLineBreakMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineBreakMode : lineBreakMode)
    }
    unsafe fn minimumLineHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumLineHeight)
    }
    unsafe fn setMinimumLineHeight_(&self, minimumLineHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumLineHeight : minimumLineHeight)
    }
    unsafe fn maximumLineHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumLineHeight)
    }
    unsafe fn setMaximumLineHeight_(&self, maximumLineHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumLineHeight : maximumLineHeight)
    }
    unsafe fn baseWritingDirection(&self) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseWritingDirection)
    }
    unsafe fn setBaseWritingDirection_(&self, baseWritingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBaseWritingDirection : baseWritingDirection)
    }
    unsafe fn lineHeightMultiple(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineHeightMultiple)
    }
    unsafe fn setLineHeightMultiple_(&self, lineHeightMultiple: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineHeightMultiple : lineHeightMultiple)
    }
    unsafe fn paragraphSpacingBefore(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSpacingBefore)
    }
    unsafe fn setParagraphSpacingBefore_(&self, paragraphSpacingBefore: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setParagraphSpacingBefore : paragraphSpacingBefore)
    }
    unsafe fn hyphenationFactor(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hyphenationFactor)
    }
    unsafe fn setHyphenationFactor_(&self, hyphenationFactor: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHyphenationFactor : hyphenationFactor)
    }
    unsafe fn usesDefaultHyphenation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesDefaultHyphenation)
    }
    unsafe fn setUsesDefaultHyphenation_(&self, usesDefaultHyphenation: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesDefaultHyphenation : usesDefaultHyphenation)
    }
    unsafe fn tabStops(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabStops)
    }
    unsafe fn setTabStops_(&self, tabStops: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabStops : tabStops)
    }
    unsafe fn defaultTabInterval(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultTabInterval)
    }
    unsafe fn setDefaultTabInterval_(&self, defaultTabInterval: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultTabInterval : defaultTabInterval)
    }
    unsafe fn allowsDefaultTighteningForTruncation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsDefaultTighteningForTruncation)
    }
    unsafe fn setAllowsDefaultTighteningForTruncation_(
        &self,
        allowsDefaultTighteningForTruncation: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsDefaultTighteningForTruncation : allowsDefaultTighteningForTruncation)
    }
    unsafe fn lineBreakStrategy(&self) -> NSLineBreakStrategy
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakStrategy)
    }
    unsafe fn setLineBreakStrategy_(&self, lineBreakStrategy: NSLineBreakStrategy)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineBreakStrategy : lineBreakStrategy)
    }
    unsafe fn textLists(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLists)
    }
    unsafe fn setTextLists_(&self, textLists: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextLists : textLists)
    }
}
impl NSTextTab_ for NSTextTab {}
impl NSParagraphStyle_ for NSParagraphStyle {}
impl NSMutableParagraphStyle_ for NSMutableParagraphStyle {}
pub type NSTextTabType = NSUInteger;
impl NSTextTab_NSTextTabDeprecated for NSTextTab {}
pub type NSCellType = NSUInteger;
pub type NSCellAttribute = NSUInteger;
pub type NSCellImagePosition = NSUInteger;
pub type NSImageScaling = NSUInteger;
pub type NSCellStyleMask = NSUInteger;
pub type NSControlTint = NSUInteger;
pub type NSControlSize = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCell(pub id);
impl std::ops::Deref for NSCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCell {}
impl NSCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCell").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCell {}
impl PNSCoding for NSCell {}
impl PNSUserInterfaceItemIdentification for NSCell {}
impl PNSAccessibilityElement for NSCell {}
impl PNSAccessibility for NSCell {}
impl INSObject for NSCell {}
impl PNSObject for NSCell {}
impl std::convert::TryFrom<NSObject> for NSCell {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCell, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCell").unwrap()) };
        if is_kind_of {
            Ok(NSCell(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCell")
        }
    }
}
impl INSCell for NSCell {}
pub trait INSCell: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn sendActionOn_(&self, mask: NSEventMask) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sendActionOn : mask)
    }
    unsafe fn compare_(&self, otherCell: id) -> NSComparisonResult
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, compare : otherCell)
    }
    unsafe fn takeIntValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeIntValueFrom : sender)
    }
    unsafe fn takeFloatValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeFloatValueFrom : sender)
    }
    unsafe fn takeDoubleValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeDoubleValueFrom : sender)
    }
    unsafe fn takeStringValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeStringValueFrom : sender)
    }
    unsafe fn takeObjectValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeObjectValueFrom : sender)
    }
    unsafe fn takeIntegerValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeIntegerValueFrom : sender)
    }
    unsafe fn cellAttribute_(&self, parameter: NSCellAttribute) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellAttribute : parameter)
    }
    unsafe fn setCellAttribute_to_(&self, parameter: NSCellAttribute, value: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCellAttribute : parameter, to : value)
    }
    unsafe fn imageRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageRectForBounds : rect)
    }
    unsafe fn titleRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, titleRectForBounds : rect)
    }
    unsafe fn drawingRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawingRectForBounds : rect)
    }
    unsafe fn cellSizeForBounds_(&self, rect: NSRect) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellSizeForBounds : rect)
    }
    unsafe fn highlightColorWithFrame_inView_(
        &self,
        cellFrame: NSRect,
        controlView: NSView,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlightColorWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn calcDrawInfo_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, calcDrawInfo : rect)
    }
    unsafe fn setUpFieldEditorAttributes_(&self, textObj: NSText) -> NSText
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUpFieldEditorAttributes : textObj)
    }
    unsafe fn drawInteriorWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInteriorWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn drawWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn highlight_withFrame_inView_(&self, flag: BOOL, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlight : flag, withFrame : cellFrame, inView : controlView)
    }
    unsafe fn getPeriodicDelay_interval_(&self, delay: *mut f32, interval: *mut f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getPeriodicDelay : delay, interval : interval)
    }
    unsafe fn startTrackingAt_inView_(&self, startPoint: NSPoint, controlView: NSView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startTrackingAt : startPoint, inView : controlView)
    }
    unsafe fn continueTracking_at_inView_(
        &self,
        lastPoint: NSPoint,
        currentPoint: NSPoint,
        controlView: NSView,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, continueTracking : lastPoint, at : currentPoint, inView : controlView)
    }
    unsafe fn stopTracking_at_inView_mouseIsUp_(
        &self,
        lastPoint: NSPoint,
        stopPoint: NSPoint,
        controlView: NSView,
        flag: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopTracking : lastPoint, at : stopPoint, inView : controlView, mouseIsUp : flag)
    }
    unsafe fn trackMouse_inRect_ofView_untilMouseUp_(
        &self,
        event: NSEvent,
        cellFrame: NSRect,
        controlView: NSView,
        flag: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackMouse : event, inRect : cellFrame, ofView : controlView, untilMouseUp : flag)
    }
    unsafe fn editWithFrame_inView_editor_delegate_event_(
        &self,
        rect: NSRect,
        controlView: NSView,
        textObj: NSText,
        delegate: id,
        event: NSEvent,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, editWithFrame : rect, inView : controlView, editor : textObj, delegate : delegate, event : event)
    }
    unsafe fn selectWithFrame_inView_editor_delegate_start_length_(
        &self,
        rect: NSRect,
        controlView: NSView,
        textObj: NSText,
        delegate: id,
        selStart: NSInteger,
        selLength: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectWithFrame : rect, inView : controlView, editor : textObj, delegate : delegate, start : selStart, length : selLength)
    }
    unsafe fn endEditing_(&self, textObj: NSText)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endEditing : textObj)
    }
    unsafe fn resetCursorRect_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resetCursorRect : cellFrame, inView : controlView)
    }
    unsafe fn menuForEvent_inRect_ofView_(
        &self,
        event: NSEvent,
        cellFrame: NSRect,
        view: NSView,
    ) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuForEvent : event, inRect : cellFrame, ofView : view)
    }
    unsafe fn fieldEditorForView_(&self, controlView: NSView) -> NSTextView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fieldEditorForView : controlView)
    }
    unsafe fn draggingImageComponentsWithFrame_inView_(
        &self,
        frame: NSRect,
        view: NSView,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingImageComponentsWithFrame : frame, inView : view)
    }
    unsafe fn controlView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlView)
    }
    unsafe fn setControlView_(&self, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlView : controlView)
    }
    unsafe fn type_(&self) -> NSCellType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn setType_(&self, type_: NSCellType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setType : type_)
    }
    unsafe fn state(&self) -> NSControlStateValue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn setState_(&self, state: NSControlStateValue)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setState : state)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn setTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn isOpaque(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpaque)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn isContinuous(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isContinuous)
    }
    unsafe fn setContinuous_(&self, continuous: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContinuous : continuous)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn isSelectable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectable)
    }
    unsafe fn setSelectable_(&self, selectable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectable : selectable)
    }
    unsafe fn isBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBordered)
    }
    unsafe fn setBordered_(&self, bordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : bordered)
    }
    unsafe fn isBezeled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBezeled)
    }
    unsafe fn setBezeled_(&self, bezeled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezeled : bezeled)
    }
    unsafe fn isScrollable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isScrollable)
    }
    unsafe fn setScrollable_(&self, scrollable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollable : scrollable)
    }
    unsafe fn isHighlighted(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHighlighted)
    }
    unsafe fn setHighlighted_(&self, highlighted: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHighlighted : highlighted)
    }
    unsafe fn alignment(&self) -> NSTextAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alignment)
    }
    unsafe fn setAlignment_(&self, alignment: NSTextAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignment : alignment)
    }
    unsafe fn wraps(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wraps)
    }
    unsafe fn setWraps_(&self, wraps: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWraps : wraps)
    }
    unsafe fn font(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, font)
    }
    unsafe fn setFont_(&self, font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFont : font)
    }
    unsafe fn keyEquivalent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalent)
    }
    unsafe fn formatter(&self) -> NSFormatter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, formatter)
    }
    unsafe fn setFormatter_(&self, formatter: NSFormatter)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFormatter : formatter)
    }
    unsafe fn objectValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValue)
    }
    unsafe fn setObjectValue_(&self, objectValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObjectValue : objectValue)
    }
    unsafe fn hasValidObjectValue(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasValidObjectValue)
    }
    unsafe fn stringValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stringValue)
    }
    unsafe fn setStringValue_(&self, stringValue: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStringValue : stringValue)
    }
    unsafe fn intValue(&self) -> ::std::os::raw::c_int
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intValue)
    }
    unsafe fn setIntValue_(&self, intValue: ::std::os::raw::c_int)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntValue : intValue)
    }
    unsafe fn floatValue(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, floatValue)
    }
    unsafe fn setFloatValue_(&self, floatValue: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFloatValue : floatValue)
    }
    unsafe fn doubleValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleValue)
    }
    unsafe fn setDoubleValue_(&self, doubleValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleValue : doubleValue)
    }
    unsafe fn integerValue(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, integerValue)
    }
    unsafe fn setIntegerValue_(&self, integerValue: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntegerValue : integerValue)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn controlSize(&self) -> NSControlSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlSize)
    }
    unsafe fn setControlSize_(&self, controlSize: NSControlSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlSize : controlSize)
    }
    unsafe fn representedObject(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedObject)
    }
    unsafe fn setRepresentedObject_(&self, representedObject: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRepresentedObject : representedObject)
    }
    unsafe fn cellSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellSize)
    }
    unsafe fn mouseDownFlags(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mouseDownFlags)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn sendsActionOnEndEditing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendsActionOnEndEditing)
    }
    unsafe fn setSendsActionOnEndEditing_(&self, sendsActionOnEndEditing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSendsActionOnEndEditing : sendsActionOnEndEditing)
    }
    unsafe fn baseWritingDirection(&self) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseWritingDirection)
    }
    unsafe fn setBaseWritingDirection_(&self, baseWritingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBaseWritingDirection : baseWritingDirection)
    }
    unsafe fn lineBreakMode(&self) -> NSLineBreakMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakMode)
    }
    unsafe fn setLineBreakMode_(&self, lineBreakMode: NSLineBreakMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineBreakMode : lineBreakMode)
    }
    unsafe fn allowsUndo(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsUndo)
    }
    unsafe fn setAllowsUndo_(&self, allowsUndo: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsUndo : allowsUndo)
    }
    unsafe fn truncatesLastVisibleLine(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, truncatesLastVisibleLine)
    }
    unsafe fn setTruncatesLastVisibleLine_(&self, truncatesLastVisibleLine: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTruncatesLastVisibleLine : truncatesLastVisibleLine)
    }
    unsafe fn userInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInterfaceLayoutDirection)
    }
    unsafe fn setUserInterfaceLayoutDirection_(
        &self,
        userInterfaceLayoutDirection: NSUserInterfaceLayoutDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserInterfaceLayoutDirection : userInterfaceLayoutDirection)
    }
    unsafe fn usesSingleLineMode(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesSingleLineMode)
    }
    unsafe fn setUsesSingleLineMode_(&self, usesSingleLineMode: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesSingleLineMode : usesSingleLineMode)
    }
    unsafe fn _bulletStringForString_bulletCharacter_(
        string: NSString,
        bulletChar: unichar,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCell").unwrap(), _bulletStringForString : string, bulletCharacter : bulletChar)
    }
    unsafe fn prefersTrackingUntilMouseUp() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCell").unwrap(), prefersTrackingUntilMouseUp)
    }
    unsafe fn defaultMenu() -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCell").unwrap(), defaultMenu)
    }
}
impl NSCell_NSKeyboardUI for NSCell {}
impl NSCell_NSCellAttributedStringMethods for NSCell {}
impl NSCell_NSCellMixedState for NSCell {}
pub type NSCellHitResult = NSUInteger;
impl NSCell_NSCellHitTest for NSCell {}
impl NSCell_NSCellExpansion for NSCell {}
pub type NSBackgroundStyle = NSInteger;
impl NSCell_NSCellBackgroundStyle for NSCell {}
impl NSCell_NSDeprecated for NSCell {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMenuItem(pub id);
impl std::ops::Deref for NSMenuItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMenuItem {}
impl NSMenuItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSMenuItem {}
impl PNSCoding for NSMenuItem {}
impl PNSValidatedUserInterfaceItem for NSMenuItem {}
impl PNSUserInterfaceItemIdentification for NSMenuItem {}
impl PNSAccessibilityElement for NSMenuItem {}
impl PNSAccessibility for NSMenuItem {}
impl INSObject for NSMenuItem {}
impl PNSObject for NSMenuItem {}
impl std::convert::TryFrom<NSObject> for NSMenuItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSMenuItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap()) };
        if is_kind_of {
            Ok(NSMenuItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSMenuItem")
        }
    }
}
impl INSMenuItem for NSMenuItem {}
pub trait INSMenuItem: Sized + std::ops::Deref {
    unsafe fn initWithTitle_action_keyEquivalent_(
        &self,
        string: NSString,
        selector: objc2::runtime::Sel,
        charCode: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : string, action : selector, keyEquivalent : charCode)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn hasSubmenu(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasSubmenu)
    }
    unsafe fn submenu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, submenu)
    }
    unsafe fn setSubmenu_(&self, submenu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubmenu : submenu)
    }
    unsafe fn parentItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parentItem)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn attributedTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedTitle)
    }
    unsafe fn setAttributedTitle_(&self, attributedTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedTitle : attributedTitle)
    }
    unsafe fn subtitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subtitle)
    }
    unsafe fn setSubtitle_(&self, subtitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubtitle : subtitle)
    }
    unsafe fn isSeparatorItem(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSeparatorItem)
    }
    unsafe fn isSectionHeader(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSectionHeader)
    }
    unsafe fn keyEquivalent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalent)
    }
    unsafe fn setKeyEquivalent_(&self, keyEquivalent: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKeyEquivalent : keyEquivalent)
    }
    unsafe fn keyEquivalentModifierMask(&self) -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalentModifierMask)
    }
    unsafe fn setKeyEquivalentModifierMask_(&self, keyEquivalentModifierMask: NSEventModifierFlags)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKeyEquivalentModifierMask : keyEquivalentModifierMask)
    }
    unsafe fn userKeyEquivalent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userKeyEquivalent)
    }
    unsafe fn allowsKeyEquivalentWhenHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsKeyEquivalentWhenHidden)
    }
    unsafe fn setAllowsKeyEquivalentWhenHidden_(&self, allowsKeyEquivalentWhenHidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsKeyEquivalentWhenHidden : allowsKeyEquivalentWhenHidden)
    }
    unsafe fn allowsAutomaticKeyEquivalentLocalization(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsAutomaticKeyEquivalentLocalization)
    }
    unsafe fn setAllowsAutomaticKeyEquivalentLocalization_(
        &self,
        allowsAutomaticKeyEquivalentLocalization: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsAutomaticKeyEquivalentLocalization : allowsAutomaticKeyEquivalentLocalization)
    }
    unsafe fn allowsAutomaticKeyEquivalentMirroring(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsAutomaticKeyEquivalentMirroring)
    }
    unsafe fn setAllowsAutomaticKeyEquivalentMirroring_(
        &self,
        allowsAutomaticKeyEquivalentMirroring: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsAutomaticKeyEquivalentMirroring : allowsAutomaticKeyEquivalentMirroring)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn state(&self) -> NSControlStateValue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn setState_(&self, state: NSControlStateValue)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setState : state)
    }
    unsafe fn onStateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, onStateImage)
    }
    unsafe fn setOnStateImage_(&self, onStateImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOnStateImage : onStateImage)
    }
    unsafe fn offStateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offStateImage)
    }
    unsafe fn setOffStateImage_(&self, offStateImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOffStateImage : offStateImage)
    }
    unsafe fn mixedStateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mixedStateImage)
    }
    unsafe fn setMixedStateImage_(&self, mixedStateImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMixedStateImage : mixedStateImage)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn isAlternate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAlternate)
    }
    unsafe fn setAlternate_(&self, alternate: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternate : alternate)
    }
    unsafe fn indentationLevel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indentationLevel)
    }
    unsafe fn setIndentationLevel_(&self, indentationLevel: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndentationLevel : indentationLevel)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn setTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag)
    }
    unsafe fn representedObject(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedObject)
    }
    unsafe fn setRepresentedObject_(&self, representedObject: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRepresentedObject : representedObject)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn isHighlighted(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHighlighted)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn isHiddenOrHasHiddenAncestor(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHiddenOrHasHiddenAncestor)
    }
    unsafe fn toolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolTip)
    }
    unsafe fn setToolTip_(&self, toolTip: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip)
    }
    unsafe fn badge(&self) -> NSMenuItemBadge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, badge)
    }
    unsafe fn setBadge_(&self, badge: NSMenuItemBadge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBadge : badge)
    }
    unsafe fn separatorItem() -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap(), separatorItem)
    }
    unsafe fn sectionHeaderWithTitle_(title: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap(), sectionHeaderWithTitle : title)
    }
    unsafe fn usesUserKeyEquivalents() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap(), usesUserKeyEquivalents)
    }
    unsafe fn setUsesUserKeyEquivalents_(usesUserKeyEquivalents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap(), setUsesUserKeyEquivalents : usesUserKeyEquivalents)
    }
    unsafe fn writingToolsItems() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItem").unwrap(), writingToolsItems)
    }
}
impl NSView_NSViewEnclosingMenuItem for NSView {}
impl NSMenuItem_NSDeprecated for NSMenuItem {}
pub type NSMenuPresentationStyle = NSInteger;
pub type NSMenuSelectionMode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMenu(pub id);
impl std::ops::Deref for NSMenu {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMenu {}
impl NSMenu {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenu").unwrap(), alloc) })
    }
}
impl PNSCopying for NSMenu {}
impl PNSCoding for NSMenu {}
impl PNSUserInterfaceItemIdentification for NSMenu {}
impl PNSAppearanceCustomization for NSMenu {}
impl PNSAccessibilityElement for NSMenu {}
impl PNSAccessibility for NSMenu {}
impl INSObject for NSMenu {}
impl PNSObject for NSMenu {}
impl std::convert::TryFrom<NSObject> for NSMenu {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSMenu, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMenu").unwrap()) };
        if is_kind_of {
            Ok(NSMenu(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSMenu")
        }
    }
}
impl INSMenu for NSMenu {}
pub trait INSMenu: Sized + std::ops::Deref {
    unsafe fn initWithTitle_(&self, title: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn popUpMenuPositioningItem_atLocation_inView_(
        &self,
        item: NSMenuItem,
        location: NSPoint,
        view: NSView,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popUpMenuPositioningItem : item, atLocation : location, inView : view)
    }
    unsafe fn insertItem_atIndex_(&self, newItem: NSMenuItem, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItem : newItem, atIndex : index)
    }
    unsafe fn addItem_(&self, newItem: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItem : newItem)
    }
    unsafe fn insertItemWithTitle_action_keyEquivalent_atIndex_(
        &self,
        string: NSString,
        selector: objc2::runtime::Sel,
        charCode: NSString,
        index: NSInteger,
    ) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemWithTitle : string, action : selector, keyEquivalent : charCode, atIndex : index)
    }
    unsafe fn addItemWithTitle_action_keyEquivalent_(
        &self,
        string: NSString,
        selector: objc2::runtime::Sel,
        charCode: NSString,
    ) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemWithTitle : string, action : selector, keyEquivalent : charCode)
    }
    unsafe fn removeItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemAtIndex : index)
    }
    unsafe fn removeItem_(&self, item: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItem : item)
    }
    unsafe fn setSubmenu_forItem_(&self, menu: NSMenu, item: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubmenu : menu, forItem : item)
    }
    unsafe fn removeAllItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllItems)
    }
    unsafe fn itemAtIndex_(&self, index: NSInteger) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtIndex : index)
    }
    unsafe fn indexOfItem_(&self, item: NSMenuItem) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItem : item)
    }
    unsafe fn indexOfItemWithTitle_(&self, title: NSString) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTitle : title)
    }
    unsafe fn indexOfItemWithTag_(&self, tag: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTag : tag)
    }
    unsafe fn indexOfItemWithRepresentedObject_(&self, object: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithRepresentedObject : object)
    }
    unsafe fn indexOfItemWithSubmenu_(&self, submenu: NSMenu) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithSubmenu : submenu)
    }
    unsafe fn indexOfItemWithTarget_andAction_(
        &self,
        target: id,
        actionSelector: objc2::runtime::Sel,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTarget : target, andAction : actionSelector)
    }
    unsafe fn itemWithTitle_(&self, title: NSString) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemWithTitle : title)
    }
    unsafe fn itemWithTag_(&self, tag: NSInteger) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemWithTag : tag)
    }
    unsafe fn update(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, update)
    }
    unsafe fn performKeyEquivalent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performKeyEquivalent : event)
    }
    unsafe fn itemChanged_(&self, item: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemChanged : item)
    }
    unsafe fn performActionForItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performActionForItemAtIndex : index)
    }
    unsafe fn cancelTracking(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancelTracking)
    }
    unsafe fn cancelTrackingWithoutAnimation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancelTrackingWithoutAnimation)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn supermenu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supermenu)
    }
    unsafe fn setSupermenu_(&self, supermenu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSupermenu : supermenu)
    }
    unsafe fn itemArray(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemArray)
    }
    unsafe fn setItemArray_(&self, itemArray: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemArray : itemArray)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn autoenablesItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autoenablesItems)
    }
    unsafe fn setAutoenablesItems_(&self, autoenablesItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoenablesItems : autoenablesItems)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn menuBarHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menuBarHeight)
    }
    unsafe fn highlightedItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, highlightedItem)
    }
    unsafe fn minimumWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumWidth)
    }
    unsafe fn setMinimumWidth_(&self, minimumWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumWidth : minimumWidth)
    }
    unsafe fn size(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, size)
    }
    unsafe fn font(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, font)
    }
    unsafe fn setFont_(&self, font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFont : font)
    }
    unsafe fn allowsContextMenuPlugIns(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsContextMenuPlugIns)
    }
    unsafe fn setAllowsContextMenuPlugIns_(&self, allowsContextMenuPlugIns: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsContextMenuPlugIns : allowsContextMenuPlugIns)
    }
    unsafe fn automaticallyInsertsWritingToolsItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyInsertsWritingToolsItems)
    }
    unsafe fn setAutomaticallyInsertsWritingToolsItems_(
        &self,
        automaticallyInsertsWritingToolsItems: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyInsertsWritingToolsItems : automaticallyInsertsWritingToolsItems)
    }
    unsafe fn showsStateColumn(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsStateColumn)
    }
    unsafe fn setShowsStateColumn_(&self, showsStateColumn: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsStateColumn : showsStateColumn)
    }
    unsafe fn userInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInterfaceLayoutDirection)
    }
    unsafe fn setUserInterfaceLayoutDirection_(
        &self,
        userInterfaceLayoutDirection: NSUserInterfaceLayoutDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserInterfaceLayoutDirection : userInterfaceLayoutDirection)
    }
    unsafe fn popUpContextMenu_withEvent_forView_(menu: NSMenu, event: NSEvent, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenu").unwrap(), popUpContextMenu : menu, withEvent : event, forView : view)
    }
    unsafe fn popUpContextMenu_withEvent_forView_withFont_(
        menu: NSMenu,
        event: NSEvent,
        view: NSView,
        font: NSFont,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenu").unwrap(), popUpContextMenu : menu, withEvent : event, forView : view, withFont : font)
    }
    unsafe fn setMenuBarVisible_(visible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenu").unwrap(), setMenuBarVisible : visible)
    }
    unsafe fn menuBarVisible() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenu").unwrap(), menuBarVisible)
    }
}
impl NSMenu_NSPaletteMenus for NSMenu {}
impl NSMenu_NSSubmenuAction for NSMenu {}
pub trait PNSMenuItemValidation: Sized + std::ops::Deref {
    unsafe fn validateMenuItem_(&self, menuItem: NSMenuItem) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateMenuItem : menuItem)
    }
}
pub trait PNSMenuDelegate: Sized + std::ops::Deref {
    unsafe fn menuNeedsUpdate_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuNeedsUpdate : menu)
    }
    unsafe fn numberOfItemsInMenu_(&self, menu: NSMenu) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfItemsInMenu : menu)
    }
    unsafe fn menu_updateItem_atIndex_shouldCancel_(
        &self,
        menu: NSMenu,
        item: NSMenuItem,
        index: NSInteger,
        shouldCancel: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menu : menu, updateItem : item, atIndex : index, shouldCancel : shouldCancel)
    }
    unsafe fn menuHasKeyEquivalent_forEvent_target_action_(
        &self,
        menu: NSMenu,
        event: NSEvent,
        target: *mut id,
        action: *mut objc2::runtime::Sel,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuHasKeyEquivalent : menu, forEvent : event, target : target, action : action)
    }
    unsafe fn menuWillOpen_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuWillOpen : menu)
    }
    unsafe fn menuDidClose_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuDidClose : menu)
    }
    unsafe fn menu_willHighlightItem_(&self, menu: NSMenu, item: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menu : menu, willHighlightItem : item)
    }
    unsafe fn confinementRectForMenu_onScreen_(&self, menu: NSMenu, screen: NSScreen) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, confinementRectForMenu : menu, onScreen : screen)
    }
}
pub type NSMenuProperties = NSUInteger;
impl NSMenu_NSMenuPropertiesToUpdate for NSMenu {}
impl NSMenu_NSDeprecated for NSMenu {}
pub type NSPrinterTableStatus = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPrinter(pub id);
impl std::ops::Deref for NSPrinter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPrinter {}
impl NSPrinter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrinter").unwrap(), alloc) })
    }
}
impl PNSCopying for NSPrinter {}
impl PNSCoding for NSPrinter {}
impl INSObject for NSPrinter {}
impl PNSObject for NSPrinter {}
impl std::convert::TryFrom<NSObject> for NSPrinter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPrinter, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPrinter").unwrap()) };
        if is_kind_of {
            Ok(NSPrinter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPrinter")
        }
    }
}
impl INSPrinter for NSPrinter {}
pub trait INSPrinter: Sized + std::ops::Deref {
    unsafe fn pageSizeForPaper_(&self, paperName: NSString) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageSizeForPaper : paperName)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn type_(&self) -> NSPrinterTypeName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn languageLevel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, languageLevel)
    }
    unsafe fn deviceDescription(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deviceDescription)
    }
    unsafe fn printerWithName_(name: NSString) -> NSPrinter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrinter").unwrap(), printerWithName : name)
    }
    unsafe fn printerWithType_(type_: NSString) -> NSPrinter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrinter").unwrap(), printerWithType : type_)
    }
    unsafe fn printerNames() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrinter").unwrap(), printerNames)
    }
    unsafe fn printerTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrinter").unwrap(), printerTypes)
    }
}
impl NSPrinter_NSDeprecated for NSPrinter {}
pub type NSPaperOrientation = NSInteger;
pub type NSPrintingPaginationMode = NSUInteger;
pub type NSPrintInfoAttributeKey = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPrintInfo(pub id);
impl std::ops::Deref for NSPrintInfo {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPrintInfo {}
impl NSPrintInfo {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintInfo").unwrap(), alloc) })
    }
}
impl PNSCopying for NSPrintInfo {}
impl PNSCoding for NSPrintInfo {}
impl INSObject for NSPrintInfo {}
impl PNSObject for NSPrintInfo {}
impl std::convert::TryFrom<NSObject> for NSPrintInfo {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPrintInfo, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPrintInfo").unwrap()) };
        if is_kind_of {
            Ok(NSPrintInfo(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPrintInfo")
        }
    }
}
impl INSPrintInfo for NSPrintInfo {}
pub trait INSPrintInfo: Sized + std::ops::Deref {
    unsafe fn initWithDictionary_(&self, attributes: NSDictionary) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDictionary : attributes)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn dictionary(&self) -> NSMutableDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dictionary)
    }
    unsafe fn setUpPrintOperationDefaultValues(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, setUpPrintOperationDefaultValues)
    }
    unsafe fn PMPrintSession(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PMPrintSession)
    }
    unsafe fn PMPageFormat(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PMPageFormat)
    }
    unsafe fn PMPrintSettings(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PMPrintSettings)
    }
    unsafe fn updateFromPMPageFormat(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateFromPMPageFormat)
    }
    unsafe fn updateFromPMPrintSettings(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateFromPMPrintSettings)
    }
    unsafe fn takeSettingsFromPDFInfo_(&self, inPDFInfo: NSPDFInfo)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeSettingsFromPDFInfo : inPDFInfo)
    }
    unsafe fn paperName(&self) -> NSPrinterPaperName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paperName)
    }
    unsafe fn setPaperName_(&self, paperName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaperName : paperName)
    }
    unsafe fn paperSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paperSize)
    }
    unsafe fn setPaperSize_(&self, paperSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaperSize : paperSize)
    }
    unsafe fn orientation(&self) -> NSPaperOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, orientation)
    }
    unsafe fn setOrientation_(&self, orientation: NSPaperOrientation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOrientation : orientation)
    }
    unsafe fn scalingFactor(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scalingFactor)
    }
    unsafe fn setScalingFactor_(&self, scalingFactor: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScalingFactor : scalingFactor)
    }
    unsafe fn leftMargin(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leftMargin)
    }
    unsafe fn setLeftMargin_(&self, leftMargin: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLeftMargin : leftMargin)
    }
    unsafe fn rightMargin(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rightMargin)
    }
    unsafe fn setRightMargin_(&self, rightMargin: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRightMargin : rightMargin)
    }
    unsafe fn topMargin(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, topMargin)
    }
    unsafe fn setTopMargin_(&self, topMargin: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTopMargin : topMargin)
    }
    unsafe fn bottomMargin(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bottomMargin)
    }
    unsafe fn setBottomMargin_(&self, bottomMargin: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBottomMargin : bottomMargin)
    }
    unsafe fn isHorizontallyCentered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHorizontallyCentered)
    }
    unsafe fn setHorizontallyCentered_(&self, horizontallyCentered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontallyCentered : horizontallyCentered)
    }
    unsafe fn isVerticallyCentered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVerticallyCentered)
    }
    unsafe fn setVerticallyCentered_(&self, verticallyCentered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticallyCentered : verticallyCentered)
    }
    unsafe fn horizontalPagination(&self) -> NSPrintingPaginationMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, horizontalPagination)
    }
    unsafe fn setHorizontalPagination_(&self, horizontalPagination: NSPrintingPaginationMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontalPagination : horizontalPagination)
    }
    unsafe fn verticalPagination(&self) -> NSPrintingPaginationMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalPagination)
    }
    unsafe fn setVerticalPagination_(&self, verticalPagination: NSPrintingPaginationMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalPagination : verticalPagination)
    }
    unsafe fn jobDisposition(&self) -> NSPrintJobDispositionValue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, jobDisposition)
    }
    unsafe fn setJobDisposition_(&self, jobDisposition: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setJobDisposition : jobDisposition)
    }
    unsafe fn printer(&self) -> NSPrinter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printer)
    }
    unsafe fn setPrinter_(&self, printer: NSPrinter)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrinter : printer)
    }
    unsafe fn imageablePageBounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageablePageBounds)
    }
    unsafe fn localizedPaperName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedPaperName)
    }
    unsafe fn printSettings(&self) -> NSMutableDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printSettings)
    }
    unsafe fn isSelectionOnly(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectionOnly)
    }
    unsafe fn setSelectionOnly_(&self, selectionOnly: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionOnly : selectionOnly)
    }
    unsafe fn sharedPrintInfo() -> NSPrintInfo
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintInfo").unwrap(), sharedPrintInfo)
    }
    unsafe fn setSharedPrintInfo_(sharedPrintInfo: NSPrintInfo)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintInfo").unwrap(), setSharedPrintInfo : sharedPrintInfo)
    }
    unsafe fn defaultPrinter() -> NSPrinter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintInfo").unwrap(), defaultPrinter)
    }
}
impl NSPrintInfo_NSDeprecated for NSPrintInfo {}
pub type NSPrintingOrientation = NSUInteger;
pub type NSBindingName = NSString;
pub type NSBindingOption = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBindingSelectionMarker(pub id);
impl std::ops::Deref for NSBindingSelectionMarker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBindingSelectionMarker {}
impl NSBindingSelectionMarker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap(), alloc) })
    }
}
impl PNSCopying for NSBindingSelectionMarker {}
impl INSObject for NSBindingSelectionMarker {}
impl PNSObject for NSBindingSelectionMarker {}
impl std::convert::TryFrom<NSObject> for NSBindingSelectionMarker {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSBindingSelectionMarker, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap()) };
        if is_kind_of {
            Ok(NSBindingSelectionMarker(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSBindingSelectionMarker")
        }
    }
}
impl INSBindingSelectionMarker for NSBindingSelectionMarker {}
pub trait INSBindingSelectionMarker: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn setDefaultPlaceholder_forMarker_onClass_withBinding_(
        placeholder: id,
        marker: NSBindingSelectionMarker,
        objectClass: Class,
        binding: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap(), setDefaultPlaceholder : placeholder, forMarker : marker, onClass : objectClass, withBinding : binding)
    }
    unsafe fn defaultPlaceholderForMarker_onClass_withBinding_(
        marker: NSBindingSelectionMarker,
        objectClass: Class,
        binding: NSString,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap(), defaultPlaceholderForMarker : marker, onClass : objectClass, withBinding : binding)
    }
    unsafe fn multipleValuesSelectionMarker() -> NSBindingSelectionMarker
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap(), multipleValuesSelectionMarker)
    }
    unsafe fn noSelectionMarker() -> NSBindingSelectionMarker
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap(), noSelectionMarker)
    }
    unsafe fn notApplicableSelectionMarker() -> NSBindingSelectionMarker
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBindingSelectionMarker").unwrap(), notApplicableSelectionMarker)
    }
}
pub type NSBindingInfoKey = NSString;
pub trait PNSEditor: Sized + std::ops::Deref {
    unsafe fn discardEditing(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, discardEditing)
    }
    unsafe fn commitEditing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, commitEditing)
    }
    unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo_(
        &self,
        delegate: id,
        didCommitSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, commitEditingWithDelegate : delegate, didCommitSelector : didCommitSelector, contextInfo : contextInfo)
    }
    unsafe fn commitEditingAndReturnError_(&self, error: *mut NSError) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, commitEditingAndReturnError : error)
    }
}
pub trait PNSEditorRegistration: Sized + std::ops::Deref {
    unsafe fn objectDidBeginEditing_(&self, editor: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, objectDidBeginEditing : editor)
    }
    unsafe fn objectDidEndEditing_(&self, editor: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, objectDidEndEditing : editor)
    }
}
pub trait PNSPreviewRepresentableActivityItem: Sized + std::ops::Deref {
    unsafe fn item(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, item)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn imageProvider(&self) -> NSItemProvider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageProvider)
    }
    unsafe fn iconProvider(&self) -> NSItemProvider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, iconProvider)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPreviewRepresentingActivityItem(pub id);
impl std::ops::Deref for NSPreviewRepresentingActivityItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPreviewRepresentingActivityItem {}
impl NSPreviewRepresentingActivityItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPreviewRepresentingActivityItem").unwrap(), alloc) })
    }
}
impl PNSPreviewRepresentableActivityItem for NSPreviewRepresentingActivityItem {}
impl INSObject for NSPreviewRepresentingActivityItem {}
impl PNSObject for NSPreviewRepresentingActivityItem {}
impl std::convert::TryFrom<NSObject> for NSPreviewRepresentingActivityItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPreviewRepresentingActivityItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPreviewRepresentingActivityItem").unwrap())
        };
        if is_kind_of {
            Ok(NSPreviewRepresentingActivityItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPreviewRepresentingActivityItem")
        }
    }
}
impl INSPreviewRepresentingActivityItem for NSPreviewRepresentingActivityItem {}
pub trait INSPreviewRepresentingActivityItem: Sized + std::ops::Deref {
    unsafe fn initWithItem_title_image_icon_(
        &self,
        item: id,
        title: NSString,
        image: NSImage,
        icon: NSImage,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItem : item, title : title, image : image, icon : icon)
    }
    unsafe fn initWithItem_title_imageProvider_iconProvider_(
        &self,
        item: id,
        title: NSString,
        imageProvider: NSItemProvider,
        iconProvider: NSItemProvider,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItem : item, title : title, imageProvider : imageProvider, iconProvider : iconProvider)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPreviewRepresentingActivityItem").unwrap(), new)
    }
}
pub type NSDocumentChangeType = NSUInteger;
pub type NSSaveOperationType = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDocument(pub id);
impl std::ops::Deref for NSDocument {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDocument {}
impl NSDocument {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), alloc) })
    }
}
impl PNSEditorRegistration for NSDocument {}
impl PNSFilePresenter for NSDocument {}
impl PNSMenuItemValidation for NSDocument {}
impl PNSUserInterfaceValidations for NSDocument {}
impl INSObject for NSDocument {}
impl PNSObject for NSDocument {}
impl std::convert::TryFrom<NSObject> for NSDocument {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDocument, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDocument").unwrap()) };
        if is_kind_of {
            Ok(NSDocument(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDocument")
        }
    }
}
impl INSDocument for NSDocument {}
pub trait INSDocument: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithType_error_(&self, typeName: NSString, outError: *mut NSError) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithType : typeName, error : outError)
    }
    unsafe fn initWithContentsOfURL_ofType_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentsOfURL : url, ofType : typeName, error : outError)
    }
    unsafe fn initForURL_withContentsOfURL_ofType_error_(
        &self,
        urlOrNil: NSURL,
        contentsURL: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initForURL : urlOrNil, withContentsOfURL : contentsURL, ofType : typeName, error : outError)
    }
    unsafe fn performActivityWithSynchronousWaiting_usingBlock_(
        &self,
        waitSynchronously: BOOL,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performActivityWithSynchronousWaiting : waitSynchronously, usingBlock : block)
    }
    unsafe fn continueActivityUsingBlock_(&self, block: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, continueActivityUsingBlock : block)
    }
    unsafe fn continueAsynchronousWorkOnMainThreadUsingBlock_(
        &self,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, continueAsynchronousWorkOnMainThreadUsingBlock : block)
    }
    unsafe fn performSynchronousFileAccessUsingBlock_(&self, block: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performSynchronousFileAccessUsingBlock : block)
    }
    unsafe fn performAsynchronousFileAccessUsingBlock_(&self, block: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performAsynchronousFileAccessUsingBlock : block)
    }
    unsafe fn revertDocumentToSaved_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, revertDocumentToSaved : sender)
    }
    unsafe fn revertToContentsOfURL_ofType_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, revertToContentsOfURL : url, ofType : typeName, error : outError)
    }
    unsafe fn readFromURL_ofType_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readFromURL : url, ofType : typeName, error : outError)
    }
    unsafe fn readFromFileWrapper_ofType_error_(
        &self,
        fileWrapper: NSFileWrapper,
        typeName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readFromFileWrapper : fileWrapper, ofType : typeName, error : outError)
    }
    unsafe fn readFromData_ofType_error_(
        &self,
        data: NSData,
        typeName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readFromData : data, ofType : typeName, error : outError)
    }
    unsafe fn writeToURL_ofType_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToURL : url, ofType : typeName, error : outError)
    }
    unsafe fn fileWrapperOfType_error_(
        &self,
        typeName: NSString,
        outError: *mut NSError,
    ) -> NSFileWrapper
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fileWrapperOfType : typeName, error : outError)
    }
    unsafe fn dataOfType_error_(&self, typeName: NSString, outError: *mut NSError) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dataOfType : typeName, error : outError)
    }
    unsafe fn unblockUserInteraction(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unblockUserInteraction)
    }
    unsafe fn writeSafelyToURL_ofType_forSaveOperation_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeSafelyToURL : url, ofType : typeName, forSaveOperation : saveOperation, error : outError)
    }
    unsafe fn writeToURL_ofType_forSaveOperation_originalContentsURL_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
        absoluteOriginalContentsURL: NSURL,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToURL : url, ofType : typeName, forSaveOperation : saveOperation, originalContentsURL : absoluteOriginalContentsURL, error : outError)
    }
    unsafe fn fileAttributesToWriteToURL_ofType_forSaveOperation_originalContentsURL_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
        absoluteOriginalContentsURL: NSURL,
        outError: *mut NSError,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fileAttributesToWriteToURL : url, ofType : typeName, forSaveOperation : saveOperation, originalContentsURL : absoluteOriginalContentsURL, error : outError)
    }
    unsafe fn saveDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveDocument : sender)
    }
    unsafe fn saveDocumentAs_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveDocumentAs : sender)
    }
    unsafe fn saveDocumentTo_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveDocumentTo : sender)
    }
    unsafe fn saveDocumentWithDelegate_didSaveSelector_contextInfo_(
        &self,
        delegate: id,
        didSaveSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveDocumentWithDelegate : delegate, didSaveSelector : didSaveSelector, contextInfo : contextInfo)
    }
    unsafe fn runModalSavePanelForSaveOperation_delegate_didSaveSelector_contextInfo_(
        &self,
        saveOperation: NSSaveOperationType,
        delegate: id,
        didSaveSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalSavePanelForSaveOperation : saveOperation, delegate : delegate, didSaveSelector : didSaveSelector, contextInfo : contextInfo)
    }
    unsafe fn prepareSavePanel_(&self, savePanel: NSSavePanel) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, prepareSavePanel : savePanel)
    }
    unsafe fn saveToURL_ofType_forSaveOperation_delegate_didSaveSelector_contextInfo_(
        &self,
        url: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
        delegate: id,
        didSaveSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveToURL : url, ofType : typeName, forSaveOperation : saveOperation, delegate : delegate, didSaveSelector : didSaveSelector, contextInfo : contextInfo)
    }
    unsafe fn saveToURL_ofType_forSaveOperation_completionHandler_(
        &self,
        url: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveToURL : url, ofType : typeName, forSaveOperation : saveOperation, completionHandler : completionHandler)
    }
    unsafe fn canAsynchronouslyWriteToURL_ofType_forSaveOperation_(
        &self,
        url: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canAsynchronouslyWriteToURL : url, ofType : typeName, forSaveOperation : saveOperation)
    }
    unsafe fn checkAutosavingSafetyAndReturnError_(&self, outError: *mut NSError) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkAutosavingSafetyAndReturnError : outError)
    }
    unsafe fn scheduleAutosaving(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scheduleAutosaving)
    }
    unsafe fn autosaveDocumentWithDelegate_didAutosaveSelector_contextInfo_(
        &self,
        delegate: id,
        didAutosaveSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, autosaveDocumentWithDelegate : delegate, didAutosaveSelector : didAutosaveSelector, contextInfo : contextInfo)
    }
    unsafe fn autosaveWithImplicitCancellability_completionHandler_(
        &self,
        autosavingIsImplicitlyCancellable: BOOL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, autosaveWithImplicitCancellability : autosavingIsImplicitlyCancellable, completionHandler : completionHandler)
    }
    unsafe fn browseDocumentVersions_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browseDocumentVersions : sender)
    }
    unsafe fn stopBrowsingVersionsWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopBrowsingVersionsWithCompletionHandler : completionHandler)
    }
    unsafe fn canCloseDocumentWithDelegate_shouldCloseSelector_contextInfo_(
        &self,
        delegate: id,
        shouldCloseSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canCloseDocumentWithDelegate : delegate, shouldCloseSelector : shouldCloseSelector, contextInfo : contextInfo)
    }
    unsafe fn close(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, close)
    }
    unsafe fn duplicateDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, duplicateDocument : sender)
    }
    unsafe fn duplicateDocumentWithDelegate_didDuplicateSelector_contextInfo_(
        &self,
        delegate: id,
        didDuplicateSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, duplicateDocumentWithDelegate : delegate, didDuplicateSelector : didDuplicateSelector, contextInfo : contextInfo)
    }
    unsafe fn duplicateAndReturnError_(&self, outError: *mut NSError) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, duplicateAndReturnError : outError)
    }
    unsafe fn renameDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, renameDocument : sender)
    }
    unsafe fn moveDocumentToUbiquityContainer_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveDocumentToUbiquityContainer : sender)
    }
    unsafe fn moveDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveDocument : sender)
    }
    unsafe fn moveDocumentWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveDocumentWithCompletionHandler : completionHandler)
    }
    unsafe fn moveToURL_completionHandler_(
        &self,
        url: NSURL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToURL : url, completionHandler : completionHandler)
    }
    unsafe fn lockDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lockDocument : sender)
    }
    unsafe fn unlockDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unlockDocument : sender)
    }
    unsafe fn lockDocumentWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lockDocumentWithCompletionHandler : completionHandler)
    }
    unsafe fn lockWithCompletionHandler_(&self, completionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lockWithCompletionHandler : completionHandler)
    }
    unsafe fn unlockDocumentWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unlockDocumentWithCompletionHandler : completionHandler)
    }
    unsafe fn unlockWithCompletionHandler_(&self, completionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unlockWithCompletionHandler : completionHandler)
    }
    unsafe fn runPageLayout_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runPageLayout : sender)
    }
    unsafe fn runModalPageLayoutWithPrintInfo_delegate_didRunSelector_contextInfo_(
        &self,
        printInfo: NSPrintInfo,
        delegate: id,
        didRunSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalPageLayoutWithPrintInfo : printInfo, delegate : delegate, didRunSelector : didRunSelector, contextInfo : contextInfo)
    }
    unsafe fn preparePageLayout_(&self, pageLayout: NSPageLayout) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, preparePageLayout : pageLayout)
    }
    unsafe fn shouldChangePrintInfo_(&self, newPrintInfo: NSPrintInfo) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldChangePrintInfo : newPrintInfo)
    }
    unsafe fn printDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, printDocument : sender)
    }
    unsafe fn printDocumentWithSettings_showPrintPanel_delegate_didPrintSelector_contextInfo_(
        &self,
        printSettings: NSDictionary,
        showPrintPanel: BOOL,
        delegate: id,
        didPrintSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, printDocumentWithSettings : printSettings, showPrintPanel : showPrintPanel, delegate : delegate, didPrintSelector : didPrintSelector, contextInfo : contextInfo)
    }
    unsafe fn printOperationWithSettings_error_(
        &self,
        printSettings: NSDictionary,
        outError: *mut NSError,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, printOperationWithSettings : printSettings, error : outError)
    }
    unsafe fn runModalPrintOperation_delegate_didRunSelector_contextInfo_(
        &self,
        printOperation: NSPrintOperation,
        delegate: id,
        didRunSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalPrintOperation : printOperation, delegate : delegate, didRunSelector : didRunSelector, contextInfo : contextInfo)
    }
    unsafe fn saveDocumentToPDF_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveDocumentToPDF : sender)
    }
    unsafe fn shareDocumentWithSharingService_completionHandler_(
        &self,
        sharingService: NSSharingService,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shareDocumentWithSharingService : sharingService, completionHandler : completionHandler)
    }
    unsafe fn prepareSharingServicePicker_(&self, sharingServicePicker: NSSharingServicePicker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, prepareSharingServicePicker : sharingServicePicker)
    }
    unsafe fn updateChangeCount_(&self, change: NSDocumentChangeType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateChangeCount : change)
    }
    unsafe fn changeCountTokenForSaveOperation_(&self, saveOperation: NSSaveOperationType) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeCountTokenForSaveOperation : saveOperation)
    }
    unsafe fn updateChangeCountWithToken_forSaveOperation_(
        &self,
        changeCountToken: id,
        saveOperation: NSSaveOperationType,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateChangeCountWithToken : changeCountToken, forSaveOperation : saveOperation)
    }
    unsafe fn presentError_modalForWindow_delegate_didPresentSelector_contextInfo_(
        &self,
        error: NSError,
        window: NSWindow,
        delegate: id,
        didPresentSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentError : error, modalForWindow : window, delegate : delegate, didPresentSelector : didPresentSelector, contextInfo : contextInfo)
    }
    unsafe fn presentError_(&self, error: NSError) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentError : error)
    }
    unsafe fn willPresentError_(&self, error: NSError) -> NSError
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, willPresentError : error)
    }
    unsafe fn willNotPresentError_(&self, error: NSError)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, willNotPresentError : error)
    }
    unsafe fn makeWindowControllers(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeWindowControllers)
    }
    unsafe fn windowControllerWillLoadNib_(&self, windowController: NSWindowController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowControllerWillLoadNib : windowController)
    }
    unsafe fn windowControllerDidLoadNib_(&self, windowController: NSWindowController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowControllerDidLoadNib : windowController)
    }
    unsafe fn setWindow_(&self, window: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWindow : window)
    }
    unsafe fn addWindowController_(&self, windowController: NSWindowController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addWindowController : windowController)
    }
    unsafe fn removeWindowController_(&self, windowController: NSWindowController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeWindowController : windowController)
    }
    unsafe fn showWindows(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showWindows)
    }
    unsafe fn shouldCloseWindowController_delegate_shouldCloseSelector_contextInfo_(
        &self,
        windowController: NSWindowController,
        delegate: id,
        shouldCloseSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldCloseWindowController : windowController, delegate : delegate, shouldCloseSelector : shouldCloseSelector, contextInfo : contextInfo)
    }
    unsafe fn setDisplayName_(&self, displayNameOrNil: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayName : displayNameOrNil)
    }
    unsafe fn defaultDraftName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultDraftName)
    }
    unsafe fn writableTypesForSaveOperation_(&self, saveOperation: NSSaveOperationType) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writableTypesForSaveOperation : saveOperation)
    }
    unsafe fn fileNameExtensionForType_saveOperation_(
        &self,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fileNameExtensionForType : typeName, saveOperation : saveOperation)
    }
    unsafe fn validateUserInterfaceItem_(&self, item: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateUserInterfaceItem : item)
    }
    unsafe fn relinquishPresentedItemToReader_(&self, reader: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relinquishPresentedItemToReader : reader)
    }
    unsafe fn relinquishPresentedItemToWriter_(&self, writer: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relinquishPresentedItemToWriter : writer)
    }
    unsafe fn savePresentedItemChangesWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, savePresentedItemChangesWithCompletionHandler : completionHandler)
    }
    unsafe fn accommodatePresentedItemDeletionWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, accommodatePresentedItemDeletionWithCompletionHandler : completionHandler)
    }
    unsafe fn presentedItemDidMoveToURL_(&self, newURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentedItemDidMoveToURL : newURL)
    }
    unsafe fn presentedItemDidChange(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, presentedItemDidChange)
    }
    unsafe fn presentedItemDidChangeUbiquityAttributes_(&self, attributes: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentedItemDidChangeUbiquityAttributes : attributes)
    }
    unsafe fn presentedItemDidGainVersion_(&self, version: NSFileVersion)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentedItemDidGainVersion : version)
    }
    unsafe fn presentedItemDidLoseVersion_(&self, version: NSFileVersion)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentedItemDidLoseVersion : version)
    }
    unsafe fn presentedItemDidResolveConflictVersion_(&self, version: NSFileVersion)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentedItemDidResolveConflictVersion : version)
    }
    unsafe fn fileType(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileType)
    }
    unsafe fn setFileType_(&self, fileType: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFileType : fileType)
    }
    unsafe fn fileURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileURL)
    }
    unsafe fn setFileURL_(&self, fileURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFileURL : fileURL)
    }
    unsafe fn fileModificationDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileModificationDate)
    }
    unsafe fn setFileModificationDate_(&self, fileModificationDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFileModificationDate : fileModificationDate)
    }
    unsafe fn isDraft(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDraft)
    }
    unsafe fn setDraft_(&self, draft: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraft : draft)
    }
    unsafe fn isEntireFileLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEntireFileLoaded)
    }
    unsafe fn autosavingIsImplicitlyCancellable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosavingIsImplicitlyCancellable)
    }
    unsafe fn keepBackupFile(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keepBackupFile)
    }
    unsafe fn backupFileURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backupFileURL)
    }
    unsafe fn savePanelShowsFileFormatsControl(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, savePanelShowsFileFormatsControl)
    }
    unsafe fn fileNameExtensionWasHiddenInLastRunSavePanel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileNameExtensionWasHiddenInLastRunSavePanel)
    }
    unsafe fn fileTypeFromLastRunSavePanel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileTypeFromLastRunSavePanel)
    }
    unsafe fn hasUnautosavedChanges(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasUnautosavedChanges)
    }
    unsafe fn isBrowsingVersions(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBrowsingVersions)
    }
    unsafe fn autosavingFileType(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosavingFileType)
    }
    unsafe fn autosavedContentsFileURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosavedContentsFileURL)
    }
    unsafe fn setAutosavedContentsFileURL_(&self, autosavedContentsFileURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosavedContentsFileURL : autosavedContentsFileURL)
    }
    unsafe fn isLocked(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isLocked)
    }
    unsafe fn printInfo(&self) -> NSPrintInfo
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printInfo)
    }
    unsafe fn setPrintInfo_(&self, printInfo: NSPrintInfo)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrintInfo : printInfo)
    }
    unsafe fn PDFPrintOperation(&self) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PDFPrintOperation)
    }
    unsafe fn allowsDocumentSharing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsDocumentSharing)
    }
    unsafe fn previewRepresentableActivityItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, previewRepresentableActivityItems)
    }
    unsafe fn setPreviewRepresentableActivityItems_(
        &self,
        previewRepresentableActivityItems: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreviewRepresentableActivityItems : previewRepresentableActivityItems)
    }
    unsafe fn isDocumentEdited(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDocumentEdited)
    }
    unsafe fn isInViewingMode(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isInViewingMode)
    }
    unsafe fn undoManager(&self) -> NSUndoManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, undoManager)
    }
    unsafe fn setUndoManager_(&self, undoManager: NSUndoManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUndoManager : undoManager)
    }
    unsafe fn hasUndoManager(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasUndoManager)
    }
    unsafe fn setHasUndoManager_(&self, hasUndoManager: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasUndoManager : hasUndoManager)
    }
    unsafe fn windowNibName(&self) -> NSNibName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowNibName)
    }
    unsafe fn windowControllers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowControllers)
    }
    unsafe fn displayName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayName)
    }
    unsafe fn windowForSheet(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowForSheet)
    }
    unsafe fn presentedItemURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, presentedItemURL)
    }
    unsafe fn observedPresentedItemUbiquityAttributes(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, observedPresentedItemUbiquityAttributes)
    }
    unsafe fn canConcurrentlyReadDocumentsOfType_(typeName: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), canConcurrentlyReadDocumentsOfType : typeName)
    }
    unsafe fn isNativeType_(type_: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), isNativeType : type_)
    }
    unsafe fn autosavesInPlace() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), autosavesInPlace)
    }
    unsafe fn preservesVersions() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), preservesVersions)
    }
    unsafe fn autosavesDrafts() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), autosavesDrafts)
    }
    unsafe fn readableTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), readableTypes)
    }
    unsafe fn writableTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), writableTypes)
    }
    unsafe fn usesUbiquitousStorage() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocument").unwrap(), usesUbiquitousStorage)
    }
}
impl NSDocument_NSDeprecated for NSDocument {}
pub trait PNSUserActivityRestoring: Sized + std::ops::Deref {
    unsafe fn restoreUserActivityState_(&self, userActivity: NSUserActivity)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, restoreUserActivityState : userActivity)
    }
}
impl NSResponder_NSUserActivity for NSResponder {}
impl NSDocument_NSUserActivity for NSDocument {}
pub type NSAppKitVersion = f64;
pub type NSApplicationPresentationOptions = NSUInteger;
pub type NSApplicationOcclusionState = NSUInteger;
pub type NSWindowListOptions = NSInteger;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NSModalSession {
    _unused: [u8; 0],
}
pub type NSModalSession = *mut _NSModalSession;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSApplication(pub id);
impl std::ops::Deref for NSApplication {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSApplication {}
impl NSApplication {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSApplication").unwrap(), alloc) })
    }
}
impl PNSUserInterfaceValidations for NSApplication {}
impl PNSMenuItemValidation for NSApplication {}
impl PNSAccessibilityElement for NSApplication {}
impl PNSAccessibility for NSApplication {}
impl INSResponder for NSApplication {}
impl PNSCoding for NSApplication {}
impl std::convert::TryFrom<NSResponder> for NSApplication {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSApplication, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSApplication").unwrap()) };
        if is_kind_of {
            Ok(NSApplication(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSApplication")
        }
    }
}
impl INSObject for NSApplication {}
impl PNSObject for NSApplication {}
impl INSApplication for NSApplication {}
pub trait INSApplication: Sized + std::ops::Deref {
    unsafe fn hide_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, hide : sender)
    }
    unsafe fn unhide_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unhide : sender)
    }
    unsafe fn unhideWithoutActivation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unhideWithoutActivation)
    }
    unsafe fn windowWithWindowNumber_(&self, windowNum: NSInteger) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWithWindowNumber : windowNum)
    }
    unsafe fn deactivate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deactivate)
    }
    unsafe fn activateIgnoringOtherApps_(&self, ignoreOtherApps: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activateIgnoringOtherApps : ignoreOtherApps)
    }
    unsafe fn activate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activate)
    }
    unsafe fn yieldActivationToApplication_(&self, application: NSRunningApplication)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, yieldActivationToApplication : application)
    }
    unsafe fn yieldActivationToApplicationWithBundleIdentifier_(&self, bundleIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, yieldActivationToApplicationWithBundleIdentifier : bundleIdentifier)
    }
    unsafe fn hideOtherApplications_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, hideOtherApplications : sender)
    }
    unsafe fn unhideAllApplications_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unhideAllApplications : sender)
    }
    unsafe fn finishLaunching(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, finishLaunching)
    }
    unsafe fn run(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, run)
    }
    unsafe fn runModalForWindow_(&self, window: NSWindow) -> NSModalResponse
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalForWindow : window)
    }
    unsafe fn stop_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stop : sender)
    }
    unsafe fn stopModal(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stopModal)
    }
    unsafe fn stopModalWithCode_(&self, returnCode: NSModalResponse)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopModalWithCode : returnCode)
    }
    unsafe fn abortModal(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, abortModal)
    }
    unsafe fn beginModalSessionForWindow_(&self, window: NSWindow) -> NSModalSession
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginModalSessionForWindow : window)
    }
    unsafe fn runModalSession_(&self, session: NSModalSession) -> NSModalResponse
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalSession : session)
    }
    unsafe fn endModalSession_(&self, session: NSModalSession)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endModalSession : session)
    }
    unsafe fn terminate_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, terminate : sender)
    }
    unsafe fn requestUserAttention_(&self, requestType: NSRequestUserAttentionType) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, requestUserAttention : requestType)
    }
    unsafe fn cancelUserAttentionRequest_(&self, request: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cancelUserAttentionRequest : request)
    }
    unsafe fn enumerateWindowsWithOptions_usingBlock_(
        &self,
        options: NSWindowListOptions,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateWindowsWithOptions : options, usingBlock : block)
    }
    unsafe fn preventWindowOrdering(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preventWindowOrdering)
    }
    unsafe fn setWindowsNeedUpdate_(&self, needUpdate: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWindowsNeedUpdate : needUpdate)
    }
    unsafe fn updateWindows(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateWindows)
    }
    unsafe fn activationPolicy(&self) -> NSApplicationActivationPolicy
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activationPolicy)
    }
    unsafe fn setActivationPolicy_(&self, activationPolicy: NSApplicationActivationPolicy) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setActivationPolicy : activationPolicy)
    }
    unsafe fn reportException_(&self, exception: NSException)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reportException : exception)
    }
    unsafe fn replyToApplicationShouldTerminate_(&self, shouldTerminate: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replyToApplicationShouldTerminate : shouldTerminate)
    }
    unsafe fn replyToOpenOrPrint_(&self, reply: NSApplicationDelegateReply)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replyToOpenOrPrint : reply)
    }
    unsafe fn orderFrontCharacterPalette_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFrontCharacterPalette : sender)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn mainWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mainWindow)
    }
    unsafe fn keyWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyWindow)
    }
    unsafe fn isActive(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isActive)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn isRunning(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRunning)
    }
    unsafe fn applicationShouldSuppressHighDynamicRangeContent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, applicationShouldSuppressHighDynamicRangeContent)
    }
    unsafe fn modalWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modalWindow)
    }
    unsafe fn windows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windows)
    }
    unsafe fn mainMenu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mainMenu)
    }
    unsafe fn setMainMenu_(&self, mainMenu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMainMenu : mainMenu)
    }
    unsafe fn helpMenu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, helpMenu)
    }
    unsafe fn setHelpMenu_(&self, helpMenu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHelpMenu : helpMenu)
    }
    unsafe fn applicationIconImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, applicationIconImage)
    }
    unsafe fn setApplicationIconImage_(&self, applicationIconImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setApplicationIconImage : applicationIconImage)
    }
    unsafe fn dockTile(&self) -> NSDockTile
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dockTile)
    }
    unsafe fn presentationOptions(&self) -> NSApplicationPresentationOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, presentationOptions)
    }
    unsafe fn setPresentationOptions_(&self, presentationOptions: NSApplicationPresentationOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPresentationOptions : presentationOptions)
    }
    unsafe fn currentSystemPresentationOptions(&self) -> NSApplicationPresentationOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentSystemPresentationOptions)
    }
    unsafe fn occlusionState(&self) -> NSApplicationOcclusionState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, occlusionState)
    }
    unsafe fn isProtectedDataAvailable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isProtectedDataAvailable)
    }
    unsafe fn detachDrawingThread_toTarget_withObject_(
        selector: objc2::runtime::Sel,
        target: id,
        argument: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSApplication").unwrap(), detachDrawingThread : selector, toTarget : target, withObject : argument)
    }
    unsafe fn sharedApplication() -> NSApplication
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSApplication").unwrap(), sharedApplication)
    }
}
pub type NSRequestUserAttentionType = NSUInteger;
pub type NSApplicationDelegateReply = NSUInteger;
impl NSApplication_NSAppearanceCustomization for NSApplication {}
impl NSApplication_NSEvent for NSApplication {}
impl NSApplication_NSResponder for NSApplication {}
impl NSApplication_NSWindowsMenu for NSApplication {}
impl NSApplication_NSFullKeyboardAccess for NSApplication {}
pub type NSApplicationTerminateReply = NSUInteger;
pub type NSApplicationPrintReply = NSUInteger;
pub trait PNSApplicationDelegate: Sized + std::ops::Deref {
    unsafe fn applicationShouldTerminate_(
        &self,
        sender: NSApplication,
    ) -> NSApplicationTerminateReply
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationShouldTerminate : sender)
    }
    unsafe fn application_openURLs_(&self, application: NSApplication, urls: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, openURLs : urls)
    }
    unsafe fn application_openFile_(&self, sender: NSApplication, filename: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : sender, openFile : filename)
    }
    unsafe fn application_openFiles_(&self, sender: NSApplication, filenames: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : sender, openFiles : filenames)
    }
    unsafe fn application_openTempFile_(&self, sender: NSApplication, filename: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : sender, openTempFile : filename)
    }
    unsafe fn applicationShouldOpenUntitledFile_(&self, sender: NSApplication) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationShouldOpenUntitledFile : sender)
    }
    unsafe fn applicationOpenUntitledFile_(&self, sender: NSApplication) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationOpenUntitledFile : sender)
    }
    unsafe fn application_openFileWithoutUI_(&self, sender: id, filename: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : sender, openFileWithoutUI : filename)
    }
    unsafe fn application_printFile_(&self, sender: NSApplication, filename: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : sender, printFile : filename)
    }
    unsafe fn application_printFiles_withSettings_showPrintPanels_(
        &self,
        application: NSApplication,
        fileNames: NSArray,
        printSettings: NSDictionary,
        showPrintPanels: BOOL,
    ) -> NSApplicationPrintReply
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, printFiles : fileNames, withSettings : printSettings, showPrintPanels : showPrintPanels)
    }
    unsafe fn applicationShouldTerminateAfterLastWindowClosed_(&self, sender: NSApplication) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationShouldTerminateAfterLastWindowClosed : sender)
    }
    unsafe fn applicationShouldHandleReopen_hasVisibleWindows_(
        &self,
        sender: NSApplication,
        hasVisibleWindows: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationShouldHandleReopen : sender, hasVisibleWindows : hasVisibleWindows)
    }
    unsafe fn applicationDockMenu_(&self, sender: NSApplication) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDockMenu : sender)
    }
    unsafe fn application_willPresentError_(
        &self,
        application: NSApplication,
        error: NSError,
    ) -> NSError
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, willPresentError : error)
    }
    unsafe fn application_didRegisterForRemoteNotificationsWithDeviceToken_(
        &self,
        application: NSApplication,
        deviceToken: NSData,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, didRegisterForRemoteNotificationsWithDeviceToken : deviceToken)
    }
    unsafe fn application_didFailToRegisterForRemoteNotificationsWithError_(
        &self,
        application: NSApplication,
        error: NSError,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, didFailToRegisterForRemoteNotificationsWithError : error)
    }
    unsafe fn application_didReceiveRemoteNotification_(
        &self,
        application: NSApplication,
        userInfo: NSDictionary,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, didReceiveRemoteNotification : userInfo)
    }
    unsafe fn applicationSupportsSecureRestorableState_(&self, app: NSApplication) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationSupportsSecureRestorableState : app)
    }
    unsafe fn application_handlerForIntent_(
        &self,
        application: NSApplication,
        intent: INIntent,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, handlerForIntent : intent)
    }
    unsafe fn application_willEncodeRestorableState_(&self, app: NSApplication, coder: NSCoder)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : app, willEncodeRestorableState : coder)
    }
    unsafe fn application_didDecodeRestorableState_(&self, app: NSApplication, coder: NSCoder)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : app, didDecodeRestorableState : coder)
    }
    unsafe fn application_willContinueUserActivityWithType_(
        &self,
        application: NSApplication,
        userActivityType: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, willContinueUserActivityWithType : userActivityType)
    }
    unsafe fn application_continueUserActivity_restorationHandler_(
        &self,
        application: NSApplication,
        userActivity: NSUserActivity,
        restorationHandler: *mut ::std::os::raw::c_void,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, continueUserActivity : userActivity, restorationHandler : restorationHandler)
    }
    unsafe fn application_didFailToContinueUserActivityWithType_error_(
        &self,
        application: NSApplication,
        userActivityType: NSString,
        error: NSError,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, didFailToContinueUserActivityWithType : userActivityType, error : error)
    }
    unsafe fn application_didUpdateUserActivity_(
        &self,
        application: NSApplication,
        userActivity: NSUserActivity,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, didUpdateUserActivity : userActivity)
    }
    unsafe fn application_userDidAcceptCloudKitShareWithMetadata_(
        &self,
        application: NSApplication,
        metadata: CKShareMetadata,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : application, userDidAcceptCloudKitShareWithMetadata : metadata)
    }
    unsafe fn application_delegateHandlesKey_(&self, sender: NSApplication, key: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, application : sender, delegateHandlesKey : key)
    }
    unsafe fn applicationShouldAutomaticallyLocalizeKeyEquivalents_(
        &self,
        application: NSApplication,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationShouldAutomaticallyLocalizeKeyEquivalents : application)
    }
    unsafe fn applicationWillFinishLaunching_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillFinishLaunching : notification)
    }
    unsafe fn applicationDidFinishLaunching_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidFinishLaunching : notification)
    }
    unsafe fn applicationWillHide_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillHide : notification)
    }
    unsafe fn applicationDidHide_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidHide : notification)
    }
    unsafe fn applicationWillUnhide_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillUnhide : notification)
    }
    unsafe fn applicationDidUnhide_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidUnhide : notification)
    }
    unsafe fn applicationWillBecomeActive_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillBecomeActive : notification)
    }
    unsafe fn applicationDidBecomeActive_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidBecomeActive : notification)
    }
    unsafe fn applicationWillResignActive_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillResignActive : notification)
    }
    unsafe fn applicationDidResignActive_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidResignActive : notification)
    }
    unsafe fn applicationWillUpdate_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillUpdate : notification)
    }
    unsafe fn applicationDidUpdate_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidUpdate : notification)
    }
    unsafe fn applicationWillTerminate_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationWillTerminate : notification)
    }
    unsafe fn applicationDidChangeScreenParameters_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidChangeScreenParameters : notification)
    }
    unsafe fn applicationDidChangeOcclusionState_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationDidChangeOcclusionState : notification)
    }
    unsafe fn applicationProtectedDataWillBecomeUnavailable_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationProtectedDataWillBecomeUnavailable : notification)
    }
    unsafe fn applicationProtectedDataDidBecomeAvailable_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applicationProtectedDataDidBecomeAvailable : notification)
    }
}
impl NSApplication_NSServicesMenu for NSApplication {}
pub trait PNSServicesMenuRequestor: Sized + std::ops::Deref {
    unsafe fn writeSelectionToPasteboard_types_(&self, pboard: NSPasteboard, types: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeSelectionToPasteboard : pboard, types : types)
    }
    unsafe fn readSelectionFromPasteboard_(&self, pboard: NSPasteboard) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readSelectionFromPasteboard : pboard)
    }
}
impl NSApplication_NSServicesHandling for NSApplication {}
pub type NSAboutPanelOptionKey = NSString;
impl NSApplication_NSStandardAboutPanel for NSApplication {}
impl NSApplication_NSApplicationLayoutDirection for NSApplication {}
impl NSApplication_NSRestorableUserInterface for NSApplication {}
pub type NSRemoteNotificationType = NSUInteger;
impl NSApplication_NSRemoteNotifications for NSApplication {}
impl NSApplication_NSDeprecated for NSApplication {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorList(pub id);
impl std::ops::Deref for NSColorList {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorList {}
impl NSColorList {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorList").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSColorList {}
impl INSObject for NSColorList {}
impl PNSObject for NSColorList {}
impl std::convert::TryFrom<NSObject> for NSColorList {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSColorList, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorList").unwrap()) };
        if is_kind_of {
            Ok(NSColorList(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSColorList")
        }
    }
}
impl INSColorList for NSColorList {}
pub trait INSColorList: Sized + std::ops::Deref {
    unsafe fn initWithName_(&self, name: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithName : name)
    }
    unsafe fn initWithName_fromFile_(&self, name: NSString, path: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithName : name, fromFile : path)
    }
    unsafe fn setColor_forKey_(&self, color: NSColor, key: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color, forKey : key)
    }
    unsafe fn insertColor_key_atIndex_(&self, color: NSColor, key: NSString, loc: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertColor : color, key : key, atIndex : loc)
    }
    unsafe fn removeColorWithKey_(&self, key: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeColorWithKey : key)
    }
    unsafe fn colorWithKey_(&self, key: NSString) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorWithKey : key)
    }
    unsafe fn writeToURL_error_(&self, url: NSURL, errPtr: *mut NSError) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToURL : url, error : errPtr)
    }
    unsafe fn writeToFile_(&self, path: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToFile : path)
    }
    unsafe fn removeFile(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeFile)
    }
    unsafe fn name(&self) -> NSColorListName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn allKeys(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allKeys)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn colorListNamed_(name: NSString) -> NSColorList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorList").unwrap(), colorListNamed : name)
    }
    unsafe fn availableColorLists() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorList").unwrap(), availableColorLists)
    }
}
pub type NSColorType = NSInteger;
pub type NSColorSystemEffect = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColor(pub id);
impl std::ops::Deref for NSColor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColor {}
impl NSColor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), alloc) })
    }
}
impl PNSCopying for NSColor {}
impl PNSSecureCoding for NSColor {}
impl PNSPasteboardReading for NSColor {}
impl PNSPasteboardWriting for NSColor {}
impl INSObject for NSColor {}
impl PNSObject for NSColor {}
impl std::convert::TryFrom<NSObject> for NSColor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSColor, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColor").unwrap()) };
        if is_kind_of {
            Ok(NSColor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSColor")
        }
    }
}
impl INSColor for NSColor {}
pub trait INSColor: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn colorUsingType_(&self, type_: NSColorType) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorUsingType : type_)
    }
    unsafe fn colorUsingColorSpace_(&self, space: NSColorSpace) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorUsingColorSpace : space)
    }
    unsafe fn colorByApplyingContentHeadroom_(&self, contentHeadroom: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorByApplyingContentHeadroom : contentHeadroom)
    }
    unsafe fn highlightWithLevel_(&self, val: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlightWithLevel : val)
    }
    unsafe fn shadowWithLevel_(&self, val: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shadowWithLevel : val)
    }
    unsafe fn colorWithSystemEffect_(&self, systemEffect: NSColorSystemEffect) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorWithSystemEffect : systemEffect)
    }
    unsafe fn set(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, set)
    }
    unsafe fn setFill(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, setFill)
    }
    unsafe fn setStroke(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, setStroke)
    }
    unsafe fn blendedColorWithFraction_ofColor_(
        &self,
        fraction_: CGFloat,
        color: NSColor,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, blendedColorWithFraction : fraction_, ofColor : color)
    }
    unsafe fn colorWithAlphaComponent_(&self, alpha: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorWithAlphaComponent : alpha)
    }
    unsafe fn getRed_green_blue_alpha_(
        &self,
        red: *mut CGFloat,
        green: *mut CGFloat,
        blue: *mut CGFloat,
        alpha: *mut CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRed : red, green : green, blue : blue, alpha : alpha)
    }
    unsafe fn getHue_saturation_brightness_alpha_(
        &self,
        hue: *mut CGFloat,
        saturation: *mut CGFloat,
        brightness: *mut CGFloat,
        alpha: *mut CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getHue : hue, saturation : saturation, brightness : brightness, alpha : alpha)
    }
    unsafe fn getWhite_alpha_(&self, white: *mut CGFloat, alpha: *mut CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getWhite : white, alpha : alpha)
    }
    unsafe fn getCyan_magenta_yellow_black_alpha_(
        &self,
        cyan: *mut CGFloat,
        magenta: *mut CGFloat,
        yellow: *mut CGFloat,
        black: *mut CGFloat,
        alpha: *mut CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getCyan : cyan, magenta : magenta, yellow : yellow, black : black, alpha : alpha)
    }
    unsafe fn getComponents_(&self, components: *mut CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getComponents : components)
    }
    unsafe fn writeToPasteboard_(&self, pasteBoard: NSPasteboard)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToPasteboard : pasteBoard)
    }
    unsafe fn drawSwatchInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawSwatchInRect : rect)
    }
    unsafe fn type_(&self) -> NSColorType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn standardDynamicRangeColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, standardDynamicRangeColor)
    }
    unsafe fn catalogNameComponent(&self) -> NSColorListName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, catalogNameComponent)
    }
    unsafe fn colorNameComponent(&self) -> NSColorName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorNameComponent)
    }
    unsafe fn localizedCatalogNameComponent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedCatalogNameComponent)
    }
    unsafe fn localizedColorNameComponent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedColorNameComponent)
    }
    unsafe fn redComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, redComponent)
    }
    unsafe fn greenComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, greenComponent)
    }
    unsafe fn blueComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, blueComponent)
    }
    unsafe fn hueComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hueComponent)
    }
    unsafe fn saturationComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, saturationComponent)
    }
    unsafe fn brightnessComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, brightnessComponent)
    }
    unsafe fn whiteComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, whiteComponent)
    }
    unsafe fn cyanComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cyanComponent)
    }
    unsafe fn magentaComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, magentaComponent)
    }
    unsafe fn yellowComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, yellowComponent)
    }
    unsafe fn blackComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, blackComponent)
    }
    unsafe fn colorSpace(&self) -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpace)
    }
    unsafe fn numberOfComponents(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfComponents)
    }
    unsafe fn patternImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, patternImage)
    }
    unsafe fn alphaComponent(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alphaComponent)
    }
    unsafe fn linearExposure(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, linearExposure)
    }
    unsafe fn CGColor(&self) -> CGColorRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGColor)
    }
    unsafe fn colorWithColorSpace_components_count_(
        space: NSColorSpace,
        components: *const CGFloat,
        numberOfComponents: NSInteger,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithColorSpace : space, components : components, count : numberOfComponents)
    }
    unsafe fn colorWithSRGBRed_green_blue_alpha_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithSRGBRed : red, green : green, blue : blue, alpha : alpha)
    }
    unsafe fn colorWithGenericGamma22White_alpha_(white: CGFloat, alpha: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithGenericGamma22White : white, alpha : alpha)
    }
    unsafe fn colorWithDisplayP3Red_green_blue_alpha_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithDisplayP3Red : red, green : green, blue : blue, alpha : alpha)
    }
    unsafe fn colorWithWhite_alpha_(white: CGFloat, alpha: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithWhite : white, alpha : alpha)
    }
    unsafe fn colorWithRed_green_blue_alpha_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithRed : red, green : green, blue : blue, alpha : alpha)
    }
    unsafe fn colorWithHue_saturation_brightness_alpha_(
        hue: CGFloat,
        saturation: CGFloat,
        brightness: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithHue : hue, saturation : saturation, brightness : brightness, alpha : alpha)
    }
    unsafe fn colorWithColorSpace_hue_saturation_brightness_alpha_(
        space: NSColorSpace,
        hue: CGFloat,
        saturation: CGFloat,
        brightness: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithColorSpace : space, hue : hue, saturation : saturation, brightness : brightness, alpha : alpha)
    }
    unsafe fn colorWithCatalogName_colorName_(listName: NSString, colorName: NSString) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithCatalogName : listName, colorName : colorName)
    }
    unsafe fn colorNamed_bundle_(name: NSString, bundle: NSBundle) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorNamed : name, bundle : bundle)
    }
    unsafe fn colorNamed_(name: NSString) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorNamed : name)
    }
    unsafe fn colorWithName_dynamicProvider_(
        colorName: NSString,
        dynamicProvider: *mut ::std::os::raw::c_void,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithName : colorName, dynamicProvider : dynamicProvider)
    }
    unsafe fn colorWithDeviceWhite_alpha_(white: CGFloat, alpha: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithDeviceWhite : white, alpha : alpha)
    }
    unsafe fn colorWithDeviceRed_green_blue_alpha_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithDeviceRed : red, green : green, blue : blue, alpha : alpha)
    }
    unsafe fn colorWithDeviceHue_saturation_brightness_alpha_(
        hue: CGFloat,
        saturation: CGFloat,
        brightness: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithDeviceHue : hue, saturation : saturation, brightness : brightness, alpha : alpha)
    }
    unsafe fn colorWithDeviceCyan_magenta_yellow_black_alpha_(
        cyan: CGFloat,
        magenta: CGFloat,
        yellow: CGFloat,
        black: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithDeviceCyan : cyan, magenta : magenta, yellow : yellow, black : black, alpha : alpha)
    }
    unsafe fn colorWithCalibratedWhite_alpha_(white: CGFloat, alpha: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithCalibratedWhite : white, alpha : alpha)
    }
    unsafe fn colorWithCalibratedRed_green_blue_alpha_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithCalibratedRed : red, green : green, blue : blue, alpha : alpha)
    }
    unsafe fn colorWithCalibratedHue_saturation_brightness_alpha_(
        hue: CGFloat,
        saturation: CGFloat,
        brightness: CGFloat,
        alpha: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithCalibratedHue : hue, saturation : saturation, brightness : brightness, alpha : alpha)
    }
    unsafe fn colorWithPatternImage_(image: NSImage) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithPatternImage : image)
    }
    unsafe fn colorWithRed_green_blue_alpha_exposure_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
        exposure: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithRed : red, green : green, blue : blue, alpha : alpha, exposure : exposure)
    }
    unsafe fn colorWithRed_green_blue_alpha_linearExposure_(
        red: CGFloat,
        green: CGFloat,
        blue: CGFloat,
        alpha: CGFloat,
        linearExposure: CGFloat,
    ) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithRed : red, green : green, blue : blue, alpha : alpha, linearExposure : linearExposure)
    }
    unsafe fn colorForControlTint_(controlTint: NSControlTint) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorForControlTint : controlTint)
    }
    unsafe fn colorFromPasteboard_(pasteBoard: NSPasteboard) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorFromPasteboard : pasteBoard)
    }
    unsafe fn colorWithCGColor_(cgColor: CGColorRef) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), colorWithCGColor : cgColor)
    }
    unsafe fn blackColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), blackColor)
    }
    unsafe fn darkGrayColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), darkGrayColor)
    }
    unsafe fn lightGrayColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), lightGrayColor)
    }
    unsafe fn whiteColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), whiteColor)
    }
    unsafe fn grayColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), grayColor)
    }
    unsafe fn redColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), redColor)
    }
    unsafe fn greenColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), greenColor)
    }
    unsafe fn blueColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), blueColor)
    }
    unsafe fn cyanColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), cyanColor)
    }
    unsafe fn yellowColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), yellowColor)
    }
    unsafe fn magentaColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), magentaColor)
    }
    unsafe fn orangeColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), orangeColor)
    }
    unsafe fn purpleColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), purpleColor)
    }
    unsafe fn brownColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), brownColor)
    }
    unsafe fn clearColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), clearColor)
    }
    unsafe fn labelColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), labelColor)
    }
    unsafe fn secondaryLabelColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), secondaryLabelColor)
    }
    unsafe fn tertiaryLabelColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), tertiaryLabelColor)
    }
    unsafe fn quaternaryLabelColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), quaternaryLabelColor)
    }
    unsafe fn quinaryLabelColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), quinaryLabelColor)
    }
    unsafe fn linkColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), linkColor)
    }
    unsafe fn placeholderTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), placeholderTextColor)
    }
    unsafe fn windowFrameTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), windowFrameTextColor)
    }
    unsafe fn selectedMenuItemTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), selectedMenuItemTextColor)
    }
    unsafe fn alternateSelectedControlTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), alternateSelectedControlTextColor)
    }
    unsafe fn headerTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), headerTextColor)
    }
    unsafe fn separatorColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), separatorColor)
    }
    unsafe fn gridColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), gridColor)
    }
    unsafe fn windowBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), windowBackgroundColor)
    }
    unsafe fn underPageBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), underPageBackgroundColor)
    }
    unsafe fn controlBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), controlBackgroundColor)
    }
    unsafe fn selectedContentBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), selectedContentBackgroundColor)
    }
    unsafe fn unemphasizedSelectedContentBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), unemphasizedSelectedContentBackgroundColor)
    }
    unsafe fn alternatingContentBackgroundColors() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), alternatingContentBackgroundColors)
    }
    unsafe fn findHighlightColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), findHighlightColor)
    }
    unsafe fn textColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), textColor)
    }
    unsafe fn textBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), textBackgroundColor)
    }
    unsafe fn textInsertionPointColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), textInsertionPointColor)
    }
    unsafe fn selectedTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), selectedTextColor)
    }
    unsafe fn selectedTextBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), selectedTextBackgroundColor)
    }
    unsafe fn unemphasizedSelectedTextBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), unemphasizedSelectedTextBackgroundColor)
    }
    unsafe fn unemphasizedSelectedTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), unemphasizedSelectedTextColor)
    }
    unsafe fn controlColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), controlColor)
    }
    unsafe fn controlTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), controlTextColor)
    }
    unsafe fn selectedControlColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), selectedControlColor)
    }
    unsafe fn selectedControlTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), selectedControlTextColor)
    }
    unsafe fn disabledControlTextColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), disabledControlTextColor)
    }
    unsafe fn keyboardFocusIndicatorColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), keyboardFocusIndicatorColor)
    }
    unsafe fn scrubberTexturedBackgroundColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), scrubberTexturedBackgroundColor)
    }
    unsafe fn systemRedColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemRedColor)
    }
    unsafe fn systemGreenColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemGreenColor)
    }
    unsafe fn systemBlueColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemBlueColor)
    }
    unsafe fn systemOrangeColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemOrangeColor)
    }
    unsafe fn systemYellowColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemYellowColor)
    }
    unsafe fn systemBrownColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemBrownColor)
    }
    unsafe fn systemPinkColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemPinkColor)
    }
    unsafe fn systemPurpleColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemPurpleColor)
    }
    unsafe fn systemGrayColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemGrayColor)
    }
    unsafe fn systemTealColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemTealColor)
    }
    unsafe fn systemIndigoColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemIndigoColor)
    }
    unsafe fn systemMintColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemMintColor)
    }
    unsafe fn systemCyanColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemCyanColor)
    }
    unsafe fn systemFillColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), systemFillColor)
    }
    unsafe fn secondarySystemFillColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), secondarySystemFillColor)
    }
    unsafe fn tertiarySystemFillColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), tertiarySystemFillColor)
    }
    unsafe fn quaternarySystemFillColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), quaternarySystemFillColor)
    }
    unsafe fn quinarySystemFillColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), quinarySystemFillColor)
    }
    unsafe fn controlAccentColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), controlAccentColor)
    }
    unsafe fn currentControlTint() -> NSControlTint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), currentControlTint)
    }
    unsafe fn highlightColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), highlightColor)
    }
    unsafe fn shadowColor() -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), shadowColor)
    }
    unsafe fn ignoresAlpha() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), ignoresAlpha)
    }
    unsafe fn setIgnoresAlpha_(ignoresAlpha: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColor").unwrap(), setIgnoresAlpha : ignoresAlpha)
    }
}
impl NSColor_NSDeprecated for NSColor {}
impl NSColor_NSQuartzCoreAdditions for NSColor {}
impl NSColor_NSAccessibilityColorConformance for NSColor {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSActionCell(pub id);
impl std::ops::Deref for NSActionCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSActionCell {}
impl NSActionCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSActionCell").unwrap(), alloc) })
    }
}
impl INSCell for NSActionCell {}
impl PNSCopying for NSActionCell {}
impl PNSCoding for NSActionCell {}
impl PNSUserInterfaceItemIdentification for NSActionCell {}
impl PNSAccessibilityElement for NSActionCell {}
impl PNSAccessibility for NSActionCell {}
impl From<NSActionCell> for NSCell {
    fn from(child: NSActionCell) -> NSCell {
        NSCell(child.0)
    }
}
impl std::convert::TryFrom<NSCell> for NSActionCell {
    type Error = &'static str;
    fn try_from(parent: NSCell) -> Result<NSActionCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSActionCell").unwrap()) };
        if is_kind_of {
            Ok(NSActionCell(parent.0))
        } else {
            Err("This NSCell cannot be downcasted to NSActionCell")
        }
    }
}
impl INSObject for NSActionCell {}
impl PNSObject for NSActionCell {}
impl INSActionCell for NSActionCell {}
pub trait INSActionCell: Sized + std::ops::Deref {
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn setTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSHelpManager(pub id);
impl std::ops::Deref for NSHelpManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSHelpManager {}
impl NSHelpManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSHelpManager").unwrap(), alloc) })
    }
}
impl INSObject for NSHelpManager {}
impl PNSObject for NSHelpManager {}
impl std::convert::TryFrom<NSObject> for NSHelpManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSHelpManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSHelpManager").unwrap()) };
        if is_kind_of {
            Ok(NSHelpManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSHelpManager")
        }
    }
}
impl INSHelpManager for NSHelpManager {}
pub trait INSHelpManager: Sized + std::ops::Deref {
    unsafe fn setContextHelp_forObject_(&self, attrString: NSAttributedString, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContextHelp : attrString, forObject : object)
    }
    unsafe fn removeContextHelpForObject_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeContextHelpForObject : object)
    }
    unsafe fn contextHelpForObject_(&self, object: id) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, contextHelpForObject : object)
    }
    unsafe fn showContextHelpForObject_locationHint_(&self, object: id, pt: NSPoint) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showContextHelpForObject : object, locationHint : pt)
    }
    unsafe fn openHelpAnchor_inBook_(&self, anchor: NSString, book: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openHelpAnchor : anchor, inBook : book)
    }
    unsafe fn findString_inBook_(&self, query: NSString, book: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, findString : query, inBook : book)
    }
    unsafe fn registerBooksInBundle_(&self, bundle: NSBundle) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerBooksInBundle : bundle)
    }
    unsafe fn sharedHelpManager() -> NSHelpManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSHelpManager").unwrap(), sharedHelpManager)
    }
    unsafe fn isContextHelpModeActive() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSHelpManager").unwrap(), isContextHelpModeActive)
    }
    unsafe fn setContextHelpModeActive_(contextHelpModeActive: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSHelpManager").unwrap(), setContextHelpModeActive : contextHelpModeActive)
    }
}
impl NSApplication_NSApplicationHelpExtension for NSApplication {}
pub type NSAlertStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAlert(pub id);
impl std::ops::Deref for NSAlert {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAlert {}
impl NSAlert {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAlert").unwrap(), alloc) })
    }
}
impl INSObject for NSAlert {}
impl PNSObject for NSAlert {}
impl std::convert::TryFrom<NSObject> for NSAlert {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAlert, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAlert").unwrap()) };
        if is_kind_of {
            Ok(NSAlert(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAlert")
        }
    }
}
impl INSAlert for NSAlert {}
pub trait INSAlert: Sized + std::ops::Deref {
    unsafe fn addButtonWithTitle_(&self, title: NSString) -> NSButton
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addButtonWithTitle : title)
    }
    unsafe fn layout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layout)
    }
    unsafe fn runModal(&self) -> NSModalResponse
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, runModal)
    }
    unsafe fn beginSheetModalForWindow_completionHandler_(
        &self,
        sheetWindow: NSWindow,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetModalForWindow : sheetWindow, completionHandler : handler)
    }
    unsafe fn messageText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, messageText)
    }
    unsafe fn setMessageText_(&self, messageText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMessageText : messageText)
    }
    unsafe fn informativeText(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, informativeText)
    }
    unsafe fn setInformativeText_(&self, informativeText: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInformativeText : informativeText)
    }
    unsafe fn icon(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, icon)
    }
    unsafe fn setIcon_(&self, icon: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIcon : icon)
    }
    unsafe fn buttons(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttons)
    }
    unsafe fn alertStyle(&self) -> NSAlertStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alertStyle)
    }
    unsafe fn setAlertStyle_(&self, alertStyle: NSAlertStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlertStyle : alertStyle)
    }
    unsafe fn showsHelp(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsHelp)
    }
    unsafe fn setShowsHelp_(&self, showsHelp: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsHelp : showsHelp)
    }
    unsafe fn helpAnchor(&self) -> NSHelpAnchorName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, helpAnchor)
    }
    unsafe fn setHelpAnchor_(&self, helpAnchor: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHelpAnchor : helpAnchor)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
    unsafe fn showsSuppressionButton(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsSuppressionButton)
    }
    unsafe fn setShowsSuppressionButton_(&self, showsSuppressionButton: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsSuppressionButton : showsSuppressionButton)
    }
    unsafe fn suppressionButton(&self) -> NSButton
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, suppressionButton)
    }
    unsafe fn window(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, window)
    }
    unsafe fn alertWithError_(error: NSError) -> NSAlert
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAlert").unwrap(), alertWithError : error)
    }
}
pub trait PNSAlertDelegate: Sized + std::ops::Deref {
    unsafe fn alertShowHelp_(&self, alert: NSAlert) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alertShowHelp : alert)
    }
}
impl NSAlert_NSAlertDeprecated for NSAlert {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAnimationContext(pub id);
impl std::ops::Deref for NSAnimationContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAnimationContext {}
impl NSAnimationContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap(), alloc) })
    }
}
impl INSObject for NSAnimationContext {}
impl PNSObject for NSAnimationContext {}
impl std::convert::TryFrom<NSObject> for NSAnimationContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAnimationContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap()) };
        if is_kind_of {
            Ok(NSAnimationContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAnimationContext")
        }
    }
}
impl INSAnimationContext for NSAnimationContext {}
pub trait INSAnimationContext: Sized + std::ops::Deref {
    unsafe fn duration(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, duration)
    }
    unsafe fn setDuration_(&self, duration: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDuration : duration)
    }
    unsafe fn timingFunction(&self) -> CAMediaTimingFunction
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, timingFunction)
    }
    unsafe fn setTimingFunction_(&self, timingFunction: CAMediaTimingFunction)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTimingFunction : timingFunction)
    }
    unsafe fn completionHandler(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completionHandler)
    }
    unsafe fn setCompletionHandler_(&self, completionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletionHandler : completionHandler)
    }
    unsafe fn allowsImplicitAnimation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsImplicitAnimation)
    }
    unsafe fn setAllowsImplicitAnimation_(&self, allowsImplicitAnimation: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsImplicitAnimation : allowsImplicitAnimation)
    }
    unsafe fn runAnimationGroup_completionHandler_(
        changes: *mut ::std::os::raw::c_void,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap(), runAnimationGroup : changes, completionHandler : completionHandler)
    }
    unsafe fn runAnimationGroup_(changes: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap(), runAnimationGroup : changes)
    }
    unsafe fn beginGrouping()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap(), beginGrouping)
    }
    unsafe fn endGrouping()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap(), endGrouping)
    }
    unsafe fn currentContext() -> NSAnimationContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAnimationContext").unwrap(), currentContext)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBackgroundExtensionView(pub id);
impl std::ops::Deref for NSBackgroundExtensionView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBackgroundExtensionView {}
impl NSBackgroundExtensionView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBackgroundExtensionView").unwrap(), alloc) })
    }
}
impl INSView for NSBackgroundExtensionView {}
impl PNSAnimatablePropertyContainer for NSBackgroundExtensionView {}
impl PNSUserInterfaceItemIdentification for NSBackgroundExtensionView {}
impl PNSDraggingDestination for NSBackgroundExtensionView {}
impl PNSAppearanceCustomization for NSBackgroundExtensionView {}
impl PNSAccessibilityElement for NSBackgroundExtensionView {}
impl PNSAccessibility for NSBackgroundExtensionView {}
impl std::convert::TryFrom<NSView> for NSBackgroundExtensionView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSBackgroundExtensionView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBackgroundExtensionView").unwrap()) };
        if is_kind_of {
            Ok(NSBackgroundExtensionView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSBackgroundExtensionView")
        }
    }
}
impl INSResponder for NSBackgroundExtensionView {}
impl PNSCoding for NSBackgroundExtensionView {}
impl INSObject for NSBackgroundExtensionView {}
impl PNSObject for NSBackgroundExtensionView {}
impl INSBackgroundExtensionView for NSBackgroundExtensionView {}
pub trait INSBackgroundExtensionView: Sized + std::ops::Deref {
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn automaticallyPlacesContentView(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyPlacesContentView)
    }
    unsafe fn setAutomaticallyPlacesContentView_(&self, automaticallyPlacesContentView: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyPlacesContentView : automaticallyPlacesContentView)
    }
}
pub type NSTitlePosition = NSUInteger;
pub type NSBoxType = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBox(pub id);
impl std::ops::Deref for NSBox {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBox {}
impl NSBox {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBox").unwrap(), alloc) })
    }
}
impl INSView for NSBox {}
impl PNSAnimatablePropertyContainer for NSBox {}
impl PNSUserInterfaceItemIdentification for NSBox {}
impl PNSDraggingDestination for NSBox {}
impl PNSAppearanceCustomization for NSBox {}
impl PNSAccessibilityElement for NSBox {}
impl PNSAccessibility for NSBox {}
impl std::convert::TryFrom<NSView> for NSBox {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSBox, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBox").unwrap()) };
        if is_kind_of {
            Ok(NSBox(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSBox")
        }
    }
}
impl INSResponder for NSBox {}
impl PNSCoding for NSBox {}
impl INSObject for NSBox {}
impl PNSObject for NSBox {}
impl INSBox for NSBox {}
pub trait INSBox: Sized + std::ops::Deref {
    unsafe fn sizeToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToFit)
    }
    unsafe fn setFrameFromContentFrame_(&self, contentFrame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameFromContentFrame : contentFrame)
    }
    unsafe fn boxType(&self) -> NSBoxType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boxType)
    }
    unsafe fn setBoxType_(&self, boxType: NSBoxType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBoxType : boxType)
    }
    unsafe fn titlePosition(&self) -> NSTitlePosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titlePosition)
    }
    unsafe fn setTitlePosition_(&self, titlePosition: NSTitlePosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitlePosition : titlePosition)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn titleFont(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleFont)
    }
    unsafe fn setTitleFont_(&self, titleFont: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleFont : titleFont)
    }
    unsafe fn borderRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, borderRect)
    }
    unsafe fn titleRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleRect)
    }
    unsafe fn titleCell(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleCell)
    }
    unsafe fn contentViewMargins(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentViewMargins)
    }
    unsafe fn setContentViewMargins_(&self, contentViewMargins: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentViewMargins : contentViewMargins)
    }
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn isTransparent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTransparent)
    }
    unsafe fn setTransparent_(&self, transparent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransparent : transparent)
    }
    unsafe fn borderWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, borderWidth)
    }
    unsafe fn setBorderWidth_(&self, borderWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderWidth : borderWidth)
    }
    unsafe fn cornerRadius(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cornerRadius)
    }
    unsafe fn setCornerRadius_(&self, cornerRadius: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCornerRadius : cornerRadius)
    }
    unsafe fn borderColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, borderColor)
    }
    unsafe fn setBorderColor_(&self, borderColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderColor : borderColor)
    }
    unsafe fn fillColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fillColor)
    }
    unsafe fn setFillColor_(&self, fillColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFillColor : fillColor)
    }
}
impl NSBox_NSDeprecated for NSBox {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSControl(pub id);
impl std::ops::Deref for NSControl {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSControl {}
impl NSControl {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSControl").unwrap(), alloc) })
    }
}
impl INSView for NSControl {}
impl PNSAnimatablePropertyContainer for NSControl {}
impl PNSUserInterfaceItemIdentification for NSControl {}
impl PNSDraggingDestination for NSControl {}
impl PNSAppearanceCustomization for NSControl {}
impl PNSAccessibilityElement for NSControl {}
impl PNSAccessibility for NSControl {}
impl std::convert::TryFrom<NSView> for NSControl {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSControl, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSControl").unwrap()) };
        if is_kind_of {
            Ok(NSControl(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSControl")
        }
    }
}
impl INSResponder for NSControl {}
impl PNSCoding for NSControl {}
impl INSObject for NSControl {}
impl PNSObject for NSControl {}
impl INSControl for NSControl {}
pub trait INSControl: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn sizeThatFits_(&self, size: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sizeThatFits : size)
    }
    unsafe fn sizeToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToFit)
    }
    unsafe fn sendActionOn_(&self, mask: NSEventMask) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sendActionOn : mask)
    }
    unsafe fn sendAction_to_(&self, action: objc2::runtime::Sel, target: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sendAction : action, to : target)
    }
    unsafe fn takeIntValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeIntValueFrom : sender)
    }
    unsafe fn takeFloatValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeFloatValueFrom : sender)
    }
    unsafe fn takeDoubleValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeDoubleValueFrom : sender)
    }
    unsafe fn takeStringValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeStringValueFrom : sender)
    }
    unsafe fn takeObjectValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeObjectValueFrom : sender)
    }
    unsafe fn takeIntegerValueFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeIntegerValueFrom : sender)
    }
    unsafe fn performClick_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performClick : sender)
    }
    unsafe fn expansionFrameWithFrame_(&self, contentFrame: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, expansionFrameWithFrame : contentFrame)
    }
    unsafe fn drawWithExpansionFrame_inView_(&self, contentFrame: NSRect, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawWithExpansionFrame : contentFrame, inView : view)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn setTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag)
    }
    unsafe fn ignoresMultiClick(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ignoresMultiClick)
    }
    unsafe fn setIgnoresMultiClick_(&self, ignoresMultiClick: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIgnoresMultiClick : ignoresMultiClick)
    }
    unsafe fn isContinuous(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isContinuous)
    }
    unsafe fn setContinuous_(&self, continuous: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContinuous : continuous)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn refusesFirstResponder(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, refusesFirstResponder)
    }
    unsafe fn setRefusesFirstResponder_(&self, refusesFirstResponder: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRefusesFirstResponder : refusesFirstResponder)
    }
    unsafe fn isHighlighted(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHighlighted)
    }
    unsafe fn setHighlighted_(&self, highlighted: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHighlighted : highlighted)
    }
    unsafe fn controlSize(&self) -> NSControlSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlSize)
    }
    unsafe fn setControlSize_(&self, controlSize: NSControlSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlSize : controlSize)
    }
    unsafe fn formatter(&self) -> NSFormatter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, formatter)
    }
    unsafe fn setFormatter_(&self, formatter: NSFormatter)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFormatter : formatter)
    }
    unsafe fn objectValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValue)
    }
    unsafe fn setObjectValue_(&self, objectValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObjectValue : objectValue)
    }
    unsafe fn stringValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stringValue)
    }
    unsafe fn setStringValue_(&self, stringValue: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStringValue : stringValue)
    }
    unsafe fn attributedStringValue(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedStringValue)
    }
    unsafe fn setAttributedStringValue_(&self, attributedStringValue: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedStringValue : attributedStringValue)
    }
    unsafe fn intValue(&self) -> ::std::os::raw::c_int
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intValue)
    }
    unsafe fn setIntValue_(&self, intValue: ::std::os::raw::c_int)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntValue : intValue)
    }
    unsafe fn integerValue(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, integerValue)
    }
    unsafe fn setIntegerValue_(&self, integerValue: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntegerValue : integerValue)
    }
    unsafe fn floatValue(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, floatValue)
    }
    unsafe fn setFloatValue_(&self, floatValue: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFloatValue : floatValue)
    }
    unsafe fn doubleValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleValue)
    }
    unsafe fn setDoubleValue_(&self, doubleValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleValue : doubleValue)
    }
    unsafe fn font(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, font)
    }
    unsafe fn setFont_(&self, font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFont : font)
    }
    unsafe fn usesSingleLineMode(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesSingleLineMode)
    }
    unsafe fn setUsesSingleLineMode_(&self, usesSingleLineMode: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesSingleLineMode : usesSingleLineMode)
    }
    unsafe fn lineBreakMode(&self) -> NSLineBreakMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakMode)
    }
    unsafe fn setLineBreakMode_(&self, lineBreakMode: NSLineBreakMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineBreakMode : lineBreakMode)
    }
    unsafe fn alignment(&self) -> NSTextAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alignment)
    }
    unsafe fn setAlignment_(&self, alignment: NSTextAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignment : alignment)
    }
    unsafe fn baseWritingDirection(&self) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseWritingDirection)
    }
    unsafe fn setBaseWritingDirection_(&self, baseWritingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBaseWritingDirection : baseWritingDirection)
    }
    unsafe fn allowsExpansionToolTips(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsExpansionToolTips)
    }
    unsafe fn setAllowsExpansionToolTips_(&self, allowsExpansionToolTips: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsExpansionToolTips : allowsExpansionToolTips)
    }
}
impl NSControl_NSControlEditableTextMethods for NSControl {}
pub trait PNSControlTextEditingDelegate: Sized + std::ops::Deref {
    unsafe fn controlTextDidBeginEditing_(&self, obj: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, controlTextDidBeginEditing : obj)
    }
    unsafe fn controlTextDidEndEditing_(&self, obj: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, controlTextDidEndEditing : obj)
    }
    unsafe fn controlTextDidChange_(&self, obj: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, controlTextDidChange : obj)
    }
    unsafe fn control_textShouldBeginEditing_(
        &self,
        control: NSControl,
        fieldEditor: NSText,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, textShouldBeginEditing : fieldEditor)
    }
    unsafe fn control_textShouldEndEditing_(&self, control: NSControl, fieldEditor: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, textShouldEndEditing : fieldEditor)
    }
    unsafe fn control_didFailToFormatString_errorDescription_(
        &self,
        control: NSControl,
        string: NSString,
        error: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, didFailToFormatString : string, errorDescription : error)
    }
    unsafe fn control_didFailToValidatePartialString_errorDescription_(
        &self,
        control: NSControl,
        string: NSString,
        error: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, didFailToValidatePartialString : string, errorDescription : error)
    }
    unsafe fn control_isValidObject_(&self, control: NSControl, obj: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, isValidObject : obj)
    }
    unsafe fn control_textView_doCommandBySelector_(
        &self,
        control: NSControl,
        textView: NSTextView,
        commandSelector: objc2::runtime::Sel,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, textView : textView, doCommandBySelector : commandSelector)
    }
    unsafe fn control_textView_completions_forPartialWordRange_indexOfSelectedItem_(
        &self,
        control: NSControl,
        textView: NSTextView,
        words: NSArray,
        charRange: NSRange,
        index: *mut NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, control : control, textView : textView, completions : words, forPartialWordRange : charRange, indexOfSelectedItem : index)
    }
}
impl NSControl_NSDeprecated for NSControl {}
pub type NSControlBorderShape = NSInteger;
pub type NSButtonType = NSUInteger;
pub type NSBezelStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSButtonCell(pub id);
impl std::ops::Deref for NSButtonCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSButtonCell {}
impl NSButtonCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSButtonCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSButtonCell {}
impl From<NSButtonCell> for NSActionCell {
    fn from(child: NSButtonCell) -> NSActionCell {
        NSActionCell(child.0)
    }
}
impl std::convert::TryFrom<NSActionCell> for NSButtonCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSButtonCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSButtonCell").unwrap()) };
        if is_kind_of {
            Ok(NSButtonCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSButtonCell")
        }
    }
}
impl INSCell for NSButtonCell {}
impl PNSCopying for NSButtonCell {}
impl PNSCoding for NSButtonCell {}
impl PNSUserInterfaceItemIdentification for NSButtonCell {}
impl PNSAccessibilityElement for NSButtonCell {}
impl PNSAccessibility for NSButtonCell {}
impl INSObject for NSButtonCell {}
impl PNSObject for NSButtonCell {}
impl INSButtonCell for NSButtonCell {}
pub trait INSButtonCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn setButtonType_(&self, type_: NSButtonType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonType : type_)
    }
    unsafe fn setPeriodicDelay_interval_(&self, delay: f32, interval: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPeriodicDelay : delay, interval : interval)
    }
    unsafe fn getPeriodicDelay_interval_(&self, delay: *mut f32, interval: *mut f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getPeriodicDelay : delay, interval : interval)
    }
    unsafe fn performClick_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performClick : sender)
    }
    unsafe fn mouseEntered_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseEntered : event)
    }
    unsafe fn mouseExited_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseExited : event)
    }
    unsafe fn drawBezelWithFrame_inView_(&self, frame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBezelWithFrame : frame, inView : controlView)
    }
    unsafe fn drawImage_withFrame_inView_(&self, image: NSImage, frame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawImage : image, withFrame : frame, inView : controlView)
    }
    unsafe fn drawTitle_withFrame_inView_(
        &self,
        title: NSAttributedString,
        frame: NSRect,
        controlView: NSView,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawTitle : title, withFrame : frame, inView : controlView)
    }
    unsafe fn bezelStyle(&self) -> NSBezelStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezelStyle)
    }
    unsafe fn setBezelStyle_(&self, bezelStyle: NSBezelStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezelStyle : bezelStyle)
    }
    unsafe fn highlightsBy(&self) -> NSCellStyleMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, highlightsBy)
    }
    unsafe fn setHighlightsBy_(&self, highlightsBy: NSCellStyleMask)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHighlightsBy : highlightsBy)
    }
    unsafe fn showsStateBy(&self) -> NSCellStyleMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsStateBy)
    }
    unsafe fn setShowsStateBy_(&self, showsStateBy: NSCellStyleMask)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsStateBy : showsStateBy)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn attributedTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedTitle)
    }
    unsafe fn setAttributedTitle_(&self, attributedTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedTitle : attributedTitle)
    }
    unsafe fn alternateTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternateTitle)
    }
    unsafe fn setAlternateTitle_(&self, alternateTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternateTitle : alternateTitle)
    }
    unsafe fn attributedAlternateTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedAlternateTitle)
    }
    unsafe fn setAttributedAlternateTitle_(&self, attributedAlternateTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedAlternateTitle : attributedAlternateTitle)
    }
    unsafe fn alternateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternateImage)
    }
    unsafe fn setAlternateImage_(&self, alternateImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternateImage : alternateImage)
    }
    unsafe fn imagePosition(&self) -> NSCellImagePosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imagePosition)
    }
    unsafe fn setImagePosition_(&self, imagePosition: NSCellImagePosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImagePosition : imagePosition)
    }
    unsafe fn imageScaling(&self) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageScaling)
    }
    unsafe fn setImageScaling_(&self, imageScaling: NSImageScaling)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : imageScaling)
    }
    unsafe fn keyEquivalent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalent)
    }
    unsafe fn setKeyEquivalent_(&self, keyEquivalent: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKeyEquivalent : keyEquivalent)
    }
    unsafe fn keyEquivalentModifierMask(&self) -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalentModifierMask)
    }
    unsafe fn setKeyEquivalentModifierMask_(&self, keyEquivalentModifierMask: NSEventModifierFlags)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKeyEquivalentModifierMask : keyEquivalentModifierMask)
    }
    unsafe fn isTransparent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTransparent)
    }
    unsafe fn setTransparent_(&self, transparent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransparent : transparent)
    }
    unsafe fn isOpaque(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpaque)
    }
    unsafe fn imageDimsWhenDisabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageDimsWhenDisabled)
    }
    unsafe fn setImageDimsWhenDisabled_(&self, imageDimsWhenDisabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageDimsWhenDisabled : imageDimsWhenDisabled)
    }
    unsafe fn showsBorderOnlyWhileMouseInside(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsBorderOnlyWhileMouseInside)
    }
    unsafe fn setShowsBorderOnlyWhileMouseInside_(&self, showsBorderOnlyWhileMouseInside: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsBorderOnlyWhileMouseInside : showsBorderOnlyWhileMouseInside)
    }
    unsafe fn sound(&self) -> NSSound
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sound)
    }
    unsafe fn setSound_(&self, sound: NSSound)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSound : sound)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
}
pub type NSGradientType = NSUInteger;
impl NSButtonCell_NSDeprecated for NSButtonCell {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSUserInterfaceCompressionOptions(pub id);
impl std::ops::Deref for NSUserInterfaceCompressionOptions {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSUserInterfaceCompressionOptions {}
impl NSUserInterfaceCompressionOptions {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap(), alloc) })
    }
}
impl PNSCopying for NSUserInterfaceCompressionOptions {}
impl PNSCoding for NSUserInterfaceCompressionOptions {}
impl INSObject for NSUserInterfaceCompressionOptions {}
impl PNSObject for NSUserInterfaceCompressionOptions {}
impl std::convert::TryFrom<NSObject> for NSUserInterfaceCompressionOptions {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSUserInterfaceCompressionOptions, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap())
        };
        if is_kind_of {
            Ok(NSUserInterfaceCompressionOptions(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSUserInterfaceCompressionOptions")
        }
    }
}
impl INSUserInterfaceCompressionOptions for NSUserInterfaceCompressionOptions {}
pub trait INSUserInterfaceCompressionOptions: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initWithIdentifier_(&self, identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier)
    }
    unsafe fn initWithCompressionOptions_(&self, options: NSSet) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCompressionOptions : options)
    }
    unsafe fn containsOptions_(&self, options: NSUserInterfaceCompressionOptions) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, containsOptions : options)
    }
    unsafe fn intersectsOptions_(&self, options: NSUserInterfaceCompressionOptions) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, intersectsOptions : options)
    }
    unsafe fn optionsByAddingOptions_(
        &self,
        options: NSUserInterfaceCompressionOptions,
    ) -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, optionsByAddingOptions : options)
    }
    unsafe fn optionsByRemovingOptions_(
        &self,
        options: NSUserInterfaceCompressionOptions,
    ) -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, optionsByRemovingOptions : options)
    }
    unsafe fn isEmpty(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEmpty)
    }
    unsafe fn hideImagesOption() -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap(), hideImagesOption)
    }
    unsafe fn hideTextOption() -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap(), hideTextOption)
    }
    unsafe fn reduceMetricsOption() -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap(), reduceMetricsOption)
    }
    unsafe fn breakEqualWidthsOption() -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap(), breakEqualWidthsOption)
    }
    unsafe fn standardOptions() -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserInterfaceCompressionOptions").unwrap(), standardOptions)
    }
}
pub trait PNSUserInterfaceCompression: Sized + std::ops::Deref {
    unsafe fn compressWithPrioritizedCompressionOptions_(&self, prioritizedOptions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, compressWithPrioritizedCompressionOptions : prioritizedOptions)
    }
    unsafe fn minimumSizeWithPrioritizedCompressionOptions_(
        &self,
        prioritizedOptions: NSArray,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, minimumSizeWithPrioritizedCompressionOptions : prioritizedOptions)
    }
    unsafe fn activeCompressionOptions(&self) -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activeCompressionOptions)
    }
}
pub type NSTintProminence = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSButton(pub id);
impl std::ops::Deref for NSButton {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSButton {}
impl NSButton {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSButton").unwrap(), alloc) })
    }
}
impl PNSUserInterfaceValidations for NSButton {}
impl PNSAccessibilityButton for NSButton {}
impl PNSUserInterfaceCompression for NSButton {}
impl INSControl for NSButton {}
impl From<NSButton> for NSControl {
    fn from(child: NSButton) -> NSControl {
        NSControl(child.0)
    }
}
impl std::convert::TryFrom<NSControl> for NSButton {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSButton, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSButton").unwrap()) };
        if is_kind_of {
            Ok(NSButton(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSButton")
        }
    }
}
impl INSView for NSButton {}
impl PNSAnimatablePropertyContainer for NSButton {}
impl PNSUserInterfaceItemIdentification for NSButton {}
impl PNSDraggingDestination for NSButton {}
impl PNSAppearanceCustomization for NSButton {}
impl PNSAccessibilityElement for NSButton {}
impl PNSAccessibility for NSButton {}
impl INSResponder for NSButton {}
impl PNSCoding for NSButton {}
impl INSObject for NSButton {}
impl PNSObject for NSButton {}
impl INSButton for NSButton {}
pub trait INSButton: Sized + std::ops::Deref {
    unsafe fn setButtonType_(&self, type_: NSButtonType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonType : type_)
    }
    unsafe fn setPeriodicDelay_interval_(&self, delay: f32, interval: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPeriodicDelay : delay, interval : interval)
    }
    unsafe fn getPeriodicDelay_interval_(&self, delay: *mut f32, interval: *mut f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getPeriodicDelay : delay, interval : interval)
    }
    unsafe fn setNextState(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, setNextState)
    }
    unsafe fn highlight_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlight : flag)
    }
    unsafe fn performKeyEquivalent_(&self, key: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performKeyEquivalent : key)
    }
    unsafe fn compressWithPrioritizedCompressionOptions_(&self, prioritizedOptions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, compressWithPrioritizedCompressionOptions : prioritizedOptions)
    }
    unsafe fn minimumSizeWithPrioritizedCompressionOptions_(
        &self,
        prioritizedOptions: NSArray,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, minimumSizeWithPrioritizedCompressionOptions : prioritizedOptions)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn attributedTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedTitle)
    }
    unsafe fn setAttributedTitle_(&self, attributedTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedTitle : attributedTitle)
    }
    unsafe fn alternateTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternateTitle)
    }
    unsafe fn setAlternateTitle_(&self, alternateTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternateTitle : alternateTitle)
    }
    unsafe fn attributedAlternateTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedAlternateTitle)
    }
    unsafe fn setAttributedAlternateTitle_(&self, attributedAlternateTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedAlternateTitle : attributedAlternateTitle)
    }
    unsafe fn hasDestructiveAction(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasDestructiveAction)
    }
    unsafe fn setHasDestructiveAction_(&self, hasDestructiveAction: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasDestructiveAction : hasDestructiveAction)
    }
    unsafe fn sound(&self) -> NSSound
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sound)
    }
    unsafe fn setSound_(&self, sound: NSSound)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSound : sound)
    }
    unsafe fn isSpringLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSpringLoaded)
    }
    unsafe fn setSpringLoaded_(&self, springLoaded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpringLoaded : springLoaded)
    }
    unsafe fn maxAcceleratorLevel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxAcceleratorLevel)
    }
    unsafe fn setMaxAcceleratorLevel_(&self, maxAcceleratorLevel: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxAcceleratorLevel : maxAcceleratorLevel)
    }
    unsafe fn bezelStyle(&self) -> NSBezelStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezelStyle)
    }
    unsafe fn setBezelStyle_(&self, bezelStyle: NSBezelStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezelStyle : bezelStyle)
    }
    unsafe fn isBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBordered)
    }
    unsafe fn setBordered_(&self, bordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : bordered)
    }
    unsafe fn isTransparent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTransparent)
    }
    unsafe fn setTransparent_(&self, transparent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransparent : transparent)
    }
    unsafe fn showsBorderOnlyWhileMouseInside(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsBorderOnlyWhileMouseInside)
    }
    unsafe fn setShowsBorderOnlyWhileMouseInside_(&self, showsBorderOnlyWhileMouseInside: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsBorderOnlyWhileMouseInside : showsBorderOnlyWhileMouseInside)
    }
    unsafe fn bezelColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezelColor)
    }
    unsafe fn setBezelColor_(&self, bezelColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezelColor : bezelColor)
    }
    unsafe fn contentTintColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentTintColor)
    }
    unsafe fn setContentTintColor_(&self, contentTintColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentTintColor : contentTintColor)
    }
    unsafe fn tintProminence(&self) -> NSTintProminence
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tintProminence)
    }
    unsafe fn setTintProminence_(&self, tintProminence: NSTintProminence)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTintProminence : tintProminence)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn alternateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternateImage)
    }
    unsafe fn setAlternateImage_(&self, alternateImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternateImage : alternateImage)
    }
    unsafe fn imagePosition(&self) -> NSCellImagePosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imagePosition)
    }
    unsafe fn setImagePosition_(&self, imagePosition: NSCellImagePosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImagePosition : imagePosition)
    }
    unsafe fn imageScaling(&self) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageScaling)
    }
    unsafe fn setImageScaling_(&self, imageScaling: NSImageScaling)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : imageScaling)
    }
    unsafe fn imageHugsTitle(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageHugsTitle)
    }
    unsafe fn setImageHugsTitle_(&self, imageHugsTitle: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageHugsTitle : imageHugsTitle)
    }
    unsafe fn symbolConfiguration(&self) -> NSImageSymbolConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, symbolConfiguration)
    }
    unsafe fn setSymbolConfiguration_(&self, symbolConfiguration: NSImageSymbolConfiguration)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSymbolConfiguration : symbolConfiguration)
    }
    unsafe fn state(&self) -> NSControlStateValue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn setState_(&self, state: NSControlStateValue)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setState : state)
    }
    unsafe fn allowsMixedState(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMixedState)
    }
    unsafe fn setAllowsMixedState_(&self, allowsMixedState: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsMixedState : allowsMixedState)
    }
    unsafe fn keyEquivalent(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalent)
    }
    unsafe fn setKeyEquivalent_(&self, keyEquivalent: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKeyEquivalent : keyEquivalent)
    }
    unsafe fn keyEquivalentModifierMask(&self) -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalentModifierMask)
    }
    unsafe fn setKeyEquivalentModifierMask_(&self, keyEquivalentModifierMask: NSEventModifierFlags)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKeyEquivalentModifierMask : keyEquivalentModifierMask)
    }
    unsafe fn activeCompressionOptions(&self) -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activeCompressionOptions)
    }
    unsafe fn borderShape(&self) -> NSControlBorderShape
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, borderShape)
    }
    unsafe fn setBorderShape_(&self, borderShape: NSControlBorderShape)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderShape : borderShape)
    }
    unsafe fn buttonWithTitle_image_target_action_(
        title: NSString,
        image: NSImage,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButton").unwrap(), buttonWithTitle : title, image : image, target : target, action : action)
    }
    unsafe fn buttonWithTitle_target_action_(
        title: NSString,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButton").unwrap(), buttonWithTitle : title, target : target, action : action)
    }
    unsafe fn buttonWithImage_target_action_(
        image: NSImage,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButton").unwrap(), buttonWithImage : image, target : target, action : action)
    }
    unsafe fn checkboxWithTitle_target_action_(
        title: NSString,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButton").unwrap(), checkboxWithTitle : title, target : target, action : action)
    }
    unsafe fn radioButtonWithTitle_target_action_(
        title: NSString,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButton").unwrap(), radioButtonWithTitle : title, target : target, action : action)
    }
}
impl NSButton_NSButtonDeprecated for NSButton {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTouchBarItem(pub id);
impl std::ops::Deref for NSTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTouchBarItem {}
impl NSTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTouchBarItem").unwrap(), alloc) })
    }
}
impl PNSCoding for NSTouchBarItem {}
impl INSObject for NSTouchBarItem {}
impl PNSObject for NSTouchBarItem {}
impl std::convert::TryFrom<NSObject> for NSTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSTouchBarItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTouchBarItem")
        }
    }
}
impl INSTouchBarItem for NSTouchBarItem {}
pub trait INSTouchBarItem: Sized + std::ops::Deref {
    unsafe fn initWithIdentifier_(&self, identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn identifier(&self) -> NSTouchBarItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn visibilityPriority(&self) -> NSTouchBarItemPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibilityPriority)
    }
    unsafe fn setVisibilityPriority_(&self, visibilityPriority: NSTouchBarItemPriority)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisibilityPriority : visibilityPriority)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn viewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewController)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTouchBar(pub id);
impl std::ops::Deref for NSTouchBar {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTouchBar {}
impl NSTouchBar {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTouchBar").unwrap(), alloc) })
    }
}
impl PNSCoding for NSTouchBar {}
impl INSObject for NSTouchBar {}
impl PNSObject for NSTouchBar {}
impl std::convert::TryFrom<NSObject> for NSTouchBar {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTouchBar, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTouchBar").unwrap()) };
        if is_kind_of {
            Ok(NSTouchBar(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTouchBar")
        }
    }
}
impl INSTouchBar for NSTouchBar {}
pub trait INSTouchBar: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn itemForIdentifier_(&self, identifier: NSString) -> NSTouchBarItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemForIdentifier : identifier)
    }
    unsafe fn customizationIdentifier(&self) -> NSTouchBarCustomizationIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationIdentifier)
    }
    unsafe fn setCustomizationIdentifier_(&self, customizationIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationIdentifier : customizationIdentifier)
    }
    unsafe fn customizationAllowedItemIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationAllowedItemIdentifiers)
    }
    unsafe fn setCustomizationAllowedItemIdentifiers_(
        &self,
        customizationAllowedItemIdentifiers: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationAllowedItemIdentifiers : customizationAllowedItemIdentifiers)
    }
    unsafe fn customizationRequiredItemIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationRequiredItemIdentifiers)
    }
    unsafe fn setCustomizationRequiredItemIdentifiers_(
        &self,
        customizationRequiredItemIdentifiers: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationRequiredItemIdentifiers : customizationRequiredItemIdentifiers)
    }
    unsafe fn defaultItemIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultItemIdentifiers)
    }
    unsafe fn setDefaultItemIdentifiers_(&self, defaultItemIdentifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultItemIdentifiers : defaultItemIdentifiers)
    }
    unsafe fn itemIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemIdentifiers)
    }
    unsafe fn principalItemIdentifier(&self) -> NSTouchBarItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, principalItemIdentifier)
    }
    unsafe fn setPrincipalItemIdentifier_(&self, principalItemIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrincipalItemIdentifier : principalItemIdentifier)
    }
    unsafe fn escapeKeyReplacementItemIdentifier(&self) -> NSTouchBarItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, escapeKeyReplacementItemIdentifier)
    }
    unsafe fn setEscapeKeyReplacementItemIdentifier_(
        &self,
        escapeKeyReplacementItemIdentifier: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEscapeKeyReplacementItemIdentifier : escapeKeyReplacementItemIdentifier)
    }
    unsafe fn templateItems(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, templateItems)
    }
    unsafe fn setTemplateItems_(&self, templateItems: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTemplateItems : templateItems)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
    unsafe fn isAutomaticCustomizeTouchBarMenuItemEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTouchBar").unwrap(), isAutomaticCustomizeTouchBarMenuItemEnabled)
    }
    unsafe fn setAutomaticCustomizeTouchBarMenuItemEnabled_(
        automaticCustomizeTouchBarMenuItemEnabled: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTouchBar").unwrap(), setAutomaticCustomizeTouchBarMenuItemEnabled : automaticCustomizeTouchBarMenuItemEnabled)
    }
}
pub trait PNSTouchBarDelegate: Sized + std::ops::Deref {
    unsafe fn touchBar_makeItemForIdentifier_(
        &self,
        touchBar: NSTouchBar,
        identifier: NSString,
    ) -> NSTouchBarItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, touchBar : touchBar, makeItemForIdentifier : identifier)
    }
}
pub trait PNSTouchBarProvider: Sized + std::ops::Deref {
    unsafe fn touchBar(&self) -> NSTouchBar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, touchBar)
    }
}
impl NSResponder_NSTouchBarProvider for NSResponder {}
impl NSApplication_NSTouchBarCustomization for NSApplication {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCandidateListTouchBarItem(pub id);
impl std::ops::Deref for NSCandidateListTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCandidateListTouchBarItem {}
impl NSCandidateListTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCandidateListTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSCandidateListTouchBarItem {}
impl PNSCoding for NSCandidateListTouchBarItem {}
impl From<NSCandidateListTouchBarItem> for NSTouchBarItem {
    fn from(child: NSCandidateListTouchBarItem) -> NSTouchBarItem {
        NSTouchBarItem(child.0)
    }
}
impl std::convert::TryFrom<NSTouchBarItem> for NSCandidateListTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSCandidateListTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCandidateListTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSCandidateListTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSCandidateListTouchBarItem")
        }
    }
}
impl INSObject for NSCandidateListTouchBarItem {}
impl PNSObject for NSCandidateListTouchBarItem {}
impl<CandidateType: 'static> INSCandidateListTouchBarItem<CandidateType>
    for NSCandidateListTouchBarItem
{
}
pub trait INSCandidateListTouchBarItem<CandidateType: 'static>: Sized + std::ops::Deref {
    unsafe fn updateWithInsertionPointVisibility_(&self, isVisible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateWithInsertionPointVisibility : isVisible)
    }
    unsafe fn setCandidates_forSelectedRange_inString_(
        &self,
        candidates: NSArray,
        selectedRange: NSRange,
        originalString: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCandidates : candidates, forSelectedRange : selectedRange, inString : originalString)
    }
    unsafe fn client(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, client)
    }
    unsafe fn setClient_(&self, client: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setClient : client)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isCollapsed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCollapsed)
    }
    unsafe fn setCollapsed_(&self, collapsed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsed : collapsed)
    }
    unsafe fn allowsCollapsing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsCollapsing)
    }
    unsafe fn setAllowsCollapsing_(&self, allowsCollapsing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsCollapsing : allowsCollapsing)
    }
    unsafe fn isCandidateListVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCandidateListVisible)
    }
    unsafe fn allowsTextInputContextCandidates(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsTextInputContextCandidates)
    }
    unsafe fn setAllowsTextInputContextCandidates_(&self, allowsTextInputContextCandidates: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsTextInputContextCandidates : allowsTextInputContextCandidates)
    }
    unsafe fn attributedStringForCandidate(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedStringForCandidate)
    }
    unsafe fn setAttributedStringForCandidate_(
        &self,
        attributedStringForCandidate: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedStringForCandidate : attributedStringForCandidate)
    }
    unsafe fn candidates(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, candidates)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
}
pub trait PNSCandidateListTouchBarItemDelegate: Sized + std::ops::Deref {
    unsafe fn candidateListTouchBarItem_beginSelectingCandidateAtIndex_(
        &self,
        anItem: NSCandidateListTouchBarItem,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, candidateListTouchBarItem : anItem, beginSelectingCandidateAtIndex : index)
    }
    unsafe fn candidateListTouchBarItem_changeSelectionFromCandidateAtIndex_toIndex_(
        &self,
        anItem: NSCandidateListTouchBarItem,
        previousIndex: NSInteger,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, candidateListTouchBarItem : anItem, changeSelectionFromCandidateAtIndex : previousIndex, toIndex : index)
    }
    unsafe fn candidateListTouchBarItem_endSelectingCandidateAtIndex_(
        &self,
        anItem: NSCandidateListTouchBarItem,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, candidateListTouchBarItem : anItem, endSelectingCandidateAtIndex : index)
    }
    unsafe fn candidateListTouchBarItem_changedCandidateListVisibility_(
        &self,
        anItem: NSCandidateListTouchBarItem,
        isVisible: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, candidateListTouchBarItem : anItem, changedCandidateListVisibility : isVisible)
    }
}
impl NSView_NSCandidateListTouchBarItem for NSView {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSClipView(pub id);
impl std::ops::Deref for NSClipView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSClipView {}
impl NSClipView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSClipView").unwrap(), alloc) })
    }
}
impl INSView for NSClipView {}
impl PNSAnimatablePropertyContainer for NSClipView {}
impl PNSUserInterfaceItemIdentification for NSClipView {}
impl PNSDraggingDestination for NSClipView {}
impl PNSAppearanceCustomization for NSClipView {}
impl PNSAccessibilityElement for NSClipView {}
impl PNSAccessibility for NSClipView {}
impl std::convert::TryFrom<NSView> for NSClipView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSClipView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSClipView").unwrap()) };
        if is_kind_of {
            Ok(NSClipView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSClipView")
        }
    }
}
impl INSResponder for NSClipView {}
impl PNSCoding for NSClipView {}
impl INSObject for NSClipView {}
impl PNSObject for NSClipView {}
impl INSClipView for NSClipView {}
pub trait INSClipView: Sized + std::ops::Deref {
    unsafe fn viewFrameChanged_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewFrameChanged : notification)
    }
    unsafe fn viewBoundsChanged_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewBoundsChanged : notification)
    }
    unsafe fn autoscroll_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, autoscroll : event)
    }
    unsafe fn scrollToPoint_(&self, newOrigin: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollToPoint : newOrigin)
    }
    unsafe fn constrainBoundsRect_(&self, proposedBounds: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constrainBoundsRect : proposedBounds)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn documentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentView)
    }
    unsafe fn setDocumentView_(&self, documentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocumentView : documentView)
    }
    unsafe fn documentRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentRect)
    }
    unsafe fn documentCursor(&self) -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentCursor)
    }
    unsafe fn setDocumentCursor_(&self, documentCursor: NSCursor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocumentCursor : documentCursor)
    }
    unsafe fn documentVisibleRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentVisibleRect)
    }
    unsafe fn contentInsets(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentInsets)
    }
    unsafe fn setContentInsets_(&self, contentInsets: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentInsets : contentInsets)
    }
    unsafe fn automaticallyAdjustsContentInsets(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyAdjustsContentInsets)
    }
    unsafe fn setAutomaticallyAdjustsContentInsets_(&self, automaticallyAdjustsContentInsets: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyAdjustsContentInsets : automaticallyAdjustsContentInsets)
    }
}
impl NSView_NSClipViewSuperview for NSView {}
impl NSClipView_ for NSClipView {}
pub type NSPopoverAppearance = NSInteger;
pub type NSPopoverBehavior = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPopover(pub id);
impl std::ops::Deref for NSPopover {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPopover {}
impl NSPopover {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopover").unwrap(), alloc) })
    }
}
impl PNSAppearanceCustomization for NSPopover {}
impl PNSAccessibilityElement for NSPopover {}
impl PNSAccessibility for NSPopover {}
impl INSResponder for NSPopover {}
impl PNSCoding for NSPopover {}
impl std::convert::TryFrom<NSResponder> for NSPopover {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSPopover, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPopover").unwrap()) };
        if is_kind_of {
            Ok(NSPopover(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSPopover")
        }
    }
}
impl INSObject for NSPopover {}
impl PNSObject for NSPopover {}
impl INSPopover for NSPopover {}
pub trait INSPopover: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn showRelativeToRect_ofView_preferredEdge_(
        &self,
        positioningRect: NSRect,
        positioningView: NSView,
        preferredEdge: NSRectEdge,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showRelativeToRect : positioningRect, ofView : positioningView, preferredEdge : preferredEdge)
    }
    unsafe fn showRelativeToToolbarItem_(&self, toolbarItem: NSToolbarItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showRelativeToToolbarItem : toolbarItem)
    }
    unsafe fn performClose_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performClose : sender)
    }
    unsafe fn close(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, close)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn appearance(&self) -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, appearance)
    }
    unsafe fn setAppearance_(&self, appearance: NSAppearance)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAppearance : appearance)
    }
    unsafe fn effectiveAppearance(&self) -> NSAppearance
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveAppearance)
    }
    unsafe fn behavior(&self) -> NSPopoverBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, behavior)
    }
    unsafe fn setBehavior_(&self, behavior: NSPopoverBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBehavior : behavior)
    }
    unsafe fn animates(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animates)
    }
    unsafe fn setAnimates_(&self, animates: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimates : animates)
    }
    unsafe fn contentViewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentViewController)
    }
    unsafe fn setContentViewController_(&self, contentViewController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentViewController : contentViewController)
    }
    unsafe fn contentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentSize)
    }
    unsafe fn setContentSize_(&self, contentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentSize : contentSize)
    }
    unsafe fn isShown(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isShown)
    }
    unsafe fn isDetached(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDetached)
    }
    unsafe fn positioningRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, positioningRect)
    }
    unsafe fn setPositioningRect_(&self, positioningRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPositioningRect : positioningRect)
    }
    unsafe fn hasFullSizeContent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasFullSizeContent)
    }
    unsafe fn setHasFullSizeContent_(&self, hasFullSizeContent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasFullSizeContent : hasFullSizeContent)
    }
}
pub type NSPopoverCloseReasonValue = NSString;
pub trait PNSPopoverDelegate: Sized + std::ops::Deref {
    unsafe fn popoverShouldClose_(&self, popover: NSPopover) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverShouldClose : popover)
    }
    unsafe fn popoverShouldDetach_(&self, popover: NSPopover) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverShouldDetach : popover)
    }
    unsafe fn popoverDidDetach_(&self, popover: NSPopover)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverDidDetach : popover)
    }
    unsafe fn detachableWindowForPopover_(&self, popover: NSPopover) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detachableWindowForPopover : popover)
    }
    unsafe fn popoverWillShow_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverWillShow : notification)
    }
    unsafe fn popoverDidShow_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverDidShow : notification)
    }
    unsafe fn popoverWillClose_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverWillClose : notification)
    }
    unsafe fn popoverDidClose_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, popoverDidClose : notification)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStoryboard(pub id);
impl std::ops::Deref for NSStoryboard {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStoryboard {}
impl NSStoryboard {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStoryboard").unwrap(), alloc) })
    }
}
impl INSObject for NSStoryboard {}
impl PNSObject for NSStoryboard {}
impl std::convert::TryFrom<NSObject> for NSStoryboard {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSStoryboard, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStoryboard").unwrap()) };
        if is_kind_of {
            Ok(NSStoryboard(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSStoryboard")
        }
    }
}
impl INSStoryboard for NSStoryboard {}
pub trait INSStoryboard: Sized + std::ops::Deref {
    unsafe fn instantiateInitialController(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, instantiateInitialController)
    }
    unsafe fn instantiateInitialControllerWithCreator_(
        &self,
        block: NSStoryboardControllerCreator,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, instantiateInitialControllerWithCreator : block)
    }
    unsafe fn instantiateControllerWithIdentifier_(&self, identifier: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, instantiateControllerWithIdentifier : identifier)
    }
    unsafe fn instantiateControllerWithIdentifier_creator_(
        &self,
        identifier: NSString,
        block: NSStoryboardControllerCreator,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, instantiateControllerWithIdentifier : identifier, creator : block)
    }
    unsafe fn storyboardWithName_bundle_(
        name: NSString,
        storyboardBundleOrNil: NSBundle,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStoryboard").unwrap(), storyboardWithName : name, bundle : storyboardBundleOrNil)
    }
    unsafe fn mainStoryboard() -> NSStoryboard
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStoryboard").unwrap(), mainStoryboard)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStoryboardSegue(pub id);
impl std::ops::Deref for NSStoryboardSegue {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStoryboardSegue {}
impl NSStoryboardSegue {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStoryboardSegue").unwrap(), alloc) })
    }
}
impl INSObject for NSStoryboardSegue {}
impl PNSObject for NSStoryboardSegue {}
impl std::convert::TryFrom<NSObject> for NSStoryboardSegue {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSStoryboardSegue, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStoryboardSegue").unwrap()) };
        if is_kind_of {
            Ok(NSStoryboardSegue(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSStoryboardSegue")
        }
    }
}
impl INSStoryboardSegue for NSStoryboardSegue {}
pub trait INSStoryboardSegue: Sized + std::ops::Deref {
    unsafe fn initWithIdentifier_source_destination_(
        &self,
        identifier: NSString,
        sourceController: id,
        destinationController: id,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier, source : sourceController, destination : destinationController)
    }
    unsafe fn perform(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, perform)
    }
    unsafe fn identifier(&self) -> NSStoryboardSegueIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn sourceController(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sourceController)
    }
    unsafe fn destinationController(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, destinationController)
    }
    unsafe fn segueWithIdentifier_source_destination_performHandler_(
        identifier: NSString,
        sourceController: id,
        destinationController: id,
        performHandler: *mut ::std::os::raw::c_void,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStoryboardSegue").unwrap(), segueWithIdentifier : identifier, source : sourceController, destination : destinationController, performHandler : performHandler)
    }
}
pub trait PNSSeguePerforming: Sized + std::ops::Deref {
    unsafe fn prepareForSegue_sender_(&self, segue: NSStoryboardSegue, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, prepareForSegue : segue, sender : sender)
    }
    unsafe fn performSegueWithIdentifier_sender_(&self, identifier: NSString, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performSegueWithIdentifier : identifier, sender : sender)
    }
    unsafe fn shouldPerformSegueWithIdentifier_sender_(
        &self,
        identifier: NSString,
        sender: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldPerformSegueWithIdentifier : identifier, sender : sender)
    }
}
pub type NSViewControllerTransitionOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSViewController(pub id);
impl std::ops::Deref for NSViewController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSViewController {}
impl NSViewController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSViewController").unwrap(), alloc) })
    }
}
impl PNSEditor for NSViewController {}
impl PNSSeguePerforming for NSViewController {}
impl PNSUserInterfaceItemIdentification for NSViewController {}
impl INSResponder for NSViewController {}
impl PNSCoding for NSViewController {}
impl std::convert::TryFrom<NSResponder> for NSViewController {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSViewController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSViewController").unwrap()) };
        if is_kind_of {
            Ok(NSViewController(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSViewController")
        }
    }
}
impl INSObject for NSViewController {}
impl PNSObject for NSViewController {}
impl INSViewController for NSViewController {}
pub trait INSViewController: Sized + std::ops::Deref {
    unsafe fn initWithNibName_bundle_(
        &self,
        nibNameOrNil: NSString,
        nibBundleOrNil: NSBundle,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNibName : nibNameOrNil, bundle : nibBundleOrNil)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn loadView(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, loadView)
    }
    unsafe fn loadViewIfNeeded(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, loadViewIfNeeded)
    }
    unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo_(
        &self,
        delegate: id,
        didCommitSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, commitEditingWithDelegate : delegate, didCommitSelector : didCommitSelector, contextInfo : contextInfo)
    }
    unsafe fn commitEditing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, commitEditing)
    }
    unsafe fn discardEditing(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, discardEditing)
    }
    unsafe fn viewDidLoad(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidLoad)
    }
    unsafe fn viewWillAppear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillAppear)
    }
    unsafe fn viewDidAppear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidAppear)
    }
    unsafe fn viewWillDisappear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillDisappear)
    }
    unsafe fn viewDidDisappear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidDisappear)
    }
    unsafe fn updateViewConstraints(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateViewConstraints)
    }
    unsafe fn viewWillLayout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillLayout)
    }
    unsafe fn viewDidLayout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidLayout)
    }
    unsafe fn nibName(&self) -> NSNibName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nibName)
    }
    unsafe fn nibBundle(&self) -> NSBundle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nibBundle)
    }
    unsafe fn representedObject(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedObject)
    }
    unsafe fn setRepresentedObject_(&self, representedObject: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRepresentedObject : representedObject)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn viewIfLoaded(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewIfLoaded)
    }
    unsafe fn isViewLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isViewLoaded)
    }
    unsafe fn preferredContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredContentSize)
    }
    unsafe fn setPreferredContentSize_(&self, preferredContentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredContentSize : preferredContentSize)
    }
}
impl NSViewController_NSViewControllerPresentation for NSViewController {}
impl NSViewController_NSViewControllerPresentationAndTransitionStyles for NSViewController {}
impl NSViewController_NSViewControllerContainer for NSViewController {}
pub trait PNSViewControllerPresentationAnimator: Sized + std::ops::Deref {
    unsafe fn animatePresentationOfViewController_fromViewController_(
        &self,
        viewController: NSViewController,
        fromViewController: NSViewController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animatePresentationOfViewController : viewController, fromViewController : fromViewController)
    }
    unsafe fn animateDismissalOfViewController_fromViewController_(
        &self,
        viewController: NSViewController,
        fromViewController: NSViewController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animateDismissalOfViewController : viewController, fromViewController : fromViewController)
    }
}
impl NSViewController_NSViewControllerStoryboardingMethods for NSViewController {}
impl NSViewController_NSExtensionAdditions for NSViewController {}
pub type NSCollectionViewDropOperation = NSInteger;
pub type NSCollectionViewItemHighlightState = NSInteger;
pub type NSCollectionViewScrollPosition = NSUInteger;
pub type NSCollectionViewSupplementaryElementKind = NSString;
pub trait PNSCollectionViewElement: Sized + std::ops::Deref {
    unsafe fn prepareForReuse(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prepareForReuse)
    }
    unsafe fn applyLayoutAttributes_(&self, layoutAttributes: NSCollectionViewLayoutAttributes)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applyLayoutAttributes : layoutAttributes)
    }
    unsafe fn willTransitionFromLayout_toLayout_(
        &self,
        oldLayout: NSCollectionViewLayout,
        newLayout: NSCollectionViewLayout,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, willTransitionFromLayout : oldLayout, toLayout : newLayout)
    }
    unsafe fn didTransitionFromLayout_toLayout_(
        &self,
        oldLayout: NSCollectionViewLayout,
        newLayout: NSCollectionViewLayout,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didTransitionFromLayout : oldLayout, toLayout : newLayout)
    }
    unsafe fn preferredLayoutAttributesFittingAttributes_(
        &self,
        layoutAttributes: NSCollectionViewLayoutAttributes,
    ) -> NSCollectionViewLayoutAttributes
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, preferredLayoutAttributesFittingAttributes : layoutAttributes)
    }
}
pub trait PNSCollectionViewSectionHeaderView: Sized + std::ops::Deref {
    unsafe fn sectionCollapseButton(&self) -> NSButton
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sectionCollapseButton)
    }
    unsafe fn setSectionCollapseButton_(&self, sectionCollapseButton: NSButton)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSectionCollapseButton : sectionCollapseButton)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewItem(pub id);
impl std::ops::Deref for NSCollectionViewItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewItem {}
impl NSCollectionViewItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionViewItem {}
impl PNSCollectionViewElement for NSCollectionViewItem {}
impl INSViewController for NSCollectionViewItem {}
impl PNSEditor for NSCollectionViewItem {}
impl PNSSeguePerforming for NSCollectionViewItem {}
impl PNSUserInterfaceItemIdentification for NSCollectionViewItem {}
impl From<NSCollectionViewItem> for NSViewController {
    fn from(child: NSCollectionViewItem) -> NSViewController {
        NSViewController(child.0)
    }
}
impl std::convert::TryFrom<NSViewController> for NSCollectionViewItem {
    type Error = &'static str;
    fn try_from(parent: NSViewController) -> Result<NSCollectionViewItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewItem").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionViewItem(parent.0))
        } else {
            Err("This NSViewController cannot be downcasted to NSCollectionViewItem")
        }
    }
}
impl INSResponder for NSCollectionViewItem {}
impl PNSCoding for NSCollectionViewItem {}
impl INSObject for NSCollectionViewItem {}
impl PNSObject for NSCollectionViewItem {}
impl INSCollectionViewItem for NSCollectionViewItem {}
pub trait INSCollectionViewItem: Sized + std::ops::Deref {
    unsafe fn collectionView(&self) -> NSCollectionView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collectionView)
    }
    unsafe fn isSelected(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelected)
    }
    unsafe fn setSelected_(&self, selected: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelected : selected)
    }
    unsafe fn highlightState(&self) -> NSCollectionViewItemHighlightState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, highlightState)
    }
    unsafe fn setHighlightState_(&self, highlightState: NSCollectionViewItemHighlightState)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHighlightState : highlightState)
    }
    unsafe fn imageView(&self) -> NSImageView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageView)
    }
    unsafe fn setImageView_(&self, imageView: NSImageView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageView : imageView)
    }
    unsafe fn textField(&self) -> NSTextField
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textField)
    }
    unsafe fn setTextField_(&self, textField: NSTextField)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextField : textField)
    }
    unsafe fn draggingImageComponents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingImageComponents)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionView(pub id);
impl std::ops::Deref for NSCollectionView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionView {}
impl NSCollectionView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionView").unwrap(), alloc) })
    }
}
impl PNSDraggingSource for NSCollectionView {}
impl PNSDraggingDestination for NSCollectionView {}
impl INSView for NSCollectionView {}
impl PNSAnimatablePropertyContainer for NSCollectionView {}
impl PNSUserInterfaceItemIdentification for NSCollectionView {}
impl PNSAppearanceCustomization for NSCollectionView {}
impl PNSAccessibilityElement for NSCollectionView {}
impl PNSAccessibility for NSCollectionView {}
impl std::convert::TryFrom<NSView> for NSCollectionView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSCollectionView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionView").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSCollectionView")
        }
    }
}
impl INSResponder for NSCollectionView {}
impl PNSCoding for NSCollectionView {}
impl INSObject for NSCollectionView {}
impl PNSObject for NSCollectionView {}
impl INSCollectionView for NSCollectionView {}
pub trait INSCollectionView: Sized + std::ops::Deref {
    unsafe fn reloadData(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadData)
    }
    unsafe fn layoutAttributesForItemAtIndexPath_(
        &self,
        indexPath: NSIndexPath,
    ) -> NSCollectionViewLayoutAttributes
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutAttributesForItemAtIndexPath : indexPath)
    }
    unsafe fn layoutAttributesForSupplementaryElementOfKind_atIndexPath_(
        &self,
        kind: NSString,
        indexPath: NSIndexPath,
    ) -> NSCollectionViewLayoutAttributes
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutAttributesForSupplementaryElementOfKind : kind, atIndexPath : indexPath)
    }
    unsafe fn frameForItemAtIndex_(&self, index: NSUInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameForItemAtIndex : index)
    }
    unsafe fn frameForItemAtIndex_withNumberOfItems_(
        &self,
        index: NSUInteger,
        numberOfItems: NSUInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameForItemAtIndex : index, withNumberOfItems : numberOfItems)
    }
    unsafe fn numberOfItemsInSection_(&self, section: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfItemsInSection : section)
    }
    unsafe fn selectItemsAtIndexPaths_scrollPosition_(
        &self,
        indexPaths: NSSet,
        scrollPosition: NSCollectionViewScrollPosition,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemsAtIndexPaths : indexPaths, scrollPosition : scrollPosition)
    }
    unsafe fn deselectItemsAtIndexPaths_(&self, indexPaths: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectItemsAtIndexPaths : indexPaths)
    }
    unsafe fn selectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAll : sender)
    }
    unsafe fn deselectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectAll : sender)
    }
    unsafe fn registerClass_forItemWithIdentifier_(&self, itemClass: Class, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerClass : itemClass, forItemWithIdentifier : identifier)
    }
    unsafe fn registerNib_forItemWithIdentifier_(&self, nib: NSNib, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerNib : nib, forItemWithIdentifier : identifier)
    }
    unsafe fn registerClass_forSupplementaryViewOfKind_withIdentifier_(
        &self,
        viewClass: Class,
        kind: NSString,
        identifier: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerClass : viewClass, forSupplementaryViewOfKind : kind, withIdentifier : identifier)
    }
    unsafe fn registerNib_forSupplementaryViewOfKind_withIdentifier_(
        &self,
        nib: NSNib,
        kind: NSString,
        identifier: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerNib : nib, forSupplementaryViewOfKind : kind, withIdentifier : identifier)
    }
    unsafe fn makeItemWithIdentifier_forIndexPath_(
        &self,
        identifier: NSString,
        indexPath: NSIndexPath,
    ) -> NSCollectionViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeItemWithIdentifier : identifier, forIndexPath : indexPath)
    }
    unsafe fn makeSupplementaryViewOfKind_withIdentifier_forIndexPath_(
        &self,
        elementKind: NSString,
        identifier: NSString,
        indexPath: NSIndexPath,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeSupplementaryViewOfKind : elementKind, withIdentifier : identifier, forIndexPath : indexPath)
    }
    unsafe fn itemAtIndex_(&self, index: NSUInteger) -> NSCollectionViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtIndex : index)
    }
    unsafe fn itemAtIndexPath_(&self, indexPath: NSIndexPath) -> NSCollectionViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtIndexPath : indexPath)
    }
    unsafe fn visibleItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleItems)
    }
    unsafe fn indexPathsForVisibleItems(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexPathsForVisibleItems)
    }
    unsafe fn indexPathForItem_(&self, item: NSCollectionViewItem) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexPathForItem : item)
    }
    unsafe fn indexPathForItemAtPoint_(&self, point: NSPoint) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexPathForItemAtPoint : point)
    }
    unsafe fn supplementaryViewForElementKind_atIndexPath_(
        &self,
        elementKind: NSString,
        indexPath: NSIndexPath,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, supplementaryViewForElementKind : elementKind, atIndexPath : indexPath)
    }
    unsafe fn visibleSupplementaryViewsOfKind_(&self, elementKind: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, visibleSupplementaryViewsOfKind : elementKind)
    }
    unsafe fn indexPathsForVisibleSupplementaryElementsOfKind_(
        &self,
        elementKind: NSString,
    ) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexPathsForVisibleSupplementaryElementsOfKind : elementKind)
    }
    unsafe fn insertSections_(&self, sections: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertSections : sections)
    }
    unsafe fn deleteSections_(&self, sections: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteSections : sections)
    }
    unsafe fn reloadSections_(&self, sections: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadSections : sections)
    }
    unsafe fn moveSection_toSection_(&self, section: NSInteger, newSection: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveSection : section, toSection : newSection)
    }
    unsafe fn insertItemsAtIndexPaths_(&self, indexPaths: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemsAtIndexPaths : indexPaths)
    }
    unsafe fn deleteItemsAtIndexPaths_(&self, indexPaths: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteItemsAtIndexPaths : indexPaths)
    }
    unsafe fn reloadItemsAtIndexPaths_(&self, indexPaths: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadItemsAtIndexPaths : indexPaths)
    }
    unsafe fn moveItemAtIndexPath_toIndexPath_(
        &self,
        indexPath: NSIndexPath,
        newIndexPath: NSIndexPath,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveItemAtIndexPath : indexPath, toIndexPath : newIndexPath)
    }
    unsafe fn performBatchUpdates_completionHandler_(
        &self,
        updates: *mut ::std::os::raw::c_void,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performBatchUpdates : updates, completionHandler : completionHandler)
    }
    unsafe fn toggleSectionCollapse_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleSectionCollapse : sender)
    }
    unsafe fn scrollToItemsAtIndexPaths_scrollPosition_(
        &self,
        indexPaths: NSSet,
        scrollPosition: NSCollectionViewScrollPosition,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollToItemsAtIndexPaths : indexPaths, scrollPosition : scrollPosition)
    }
    unsafe fn setDraggingSourceOperationMask_forLocal_(
        &self,
        dragOperationMask: NSDragOperation,
        localDestination: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingSourceOperationMask : dragOperationMask, forLocal : localDestination)
    }
    unsafe fn draggingImageForItemsAtIndexPaths_withEvent_offset_(
        &self,
        indexPaths: NSSet,
        event: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingImageForItemsAtIndexPaths : indexPaths, withEvent : event, offset : dragImageOffset)
    }
    unsafe fn draggingImageForItemsAtIndexes_withEvent_offset_(
        &self,
        indexes: NSIndexSet,
        event: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingImageForItemsAtIndexes : indexes, withEvent : event, offset : dragImageOffset)
    }
    unsafe fn dataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataSource)
    }
    unsafe fn setDataSource_(&self, dataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataSource : dataSource)
    }
    unsafe fn prefetchDataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prefetchDataSource)
    }
    unsafe fn setPrefetchDataSource_(&self, prefetchDataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrefetchDataSource : prefetchDataSource)
    }
    unsafe fn content(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn setContent_(&self, content: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContent : content)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn backgroundView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundView)
    }
    unsafe fn setBackgroundView_(&self, backgroundView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundView : backgroundView)
    }
    unsafe fn backgroundViewScrollsWithContent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundViewScrollsWithContent)
    }
    unsafe fn setBackgroundViewScrollsWithContent_(&self, backgroundViewScrollsWithContent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundViewScrollsWithContent : backgroundViewScrollsWithContent)
    }
    unsafe fn collectionViewLayout(&self) -> NSCollectionViewLayout
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collectionViewLayout)
    }
    unsafe fn setCollectionViewLayout_(&self, collectionViewLayout: NSCollectionViewLayout)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollectionViewLayout : collectionViewLayout)
    }
    unsafe fn backgroundColors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColors)
    }
    unsafe fn setBackgroundColors_(&self, backgroundColors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColors : backgroundColors)
    }
    unsafe fn numberOfSections(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfSections)
    }
    unsafe fn isFirstResponder(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFirstResponder)
    }
    unsafe fn isSelectable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectable)
    }
    unsafe fn setSelectable_(&self, selectable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectable : selectable)
    }
    unsafe fn allowsEmptySelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsEmptySelection)
    }
    unsafe fn setAllowsEmptySelection_(&self, allowsEmptySelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsEmptySelection : allowsEmptySelection)
    }
    unsafe fn allowsMultipleSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMultipleSelection)
    }
    unsafe fn setAllowsMultipleSelection_(&self, allowsMultipleSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsMultipleSelection : allowsMultipleSelection)
    }
    unsafe fn selectionIndexes(&self) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexes)
    }
    unsafe fn setSelectionIndexes_(&self, selectionIndexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexes : selectionIndexes)
    }
    unsafe fn selectionIndexPaths(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexPaths)
    }
    unsafe fn setSelectionIndexPaths_(&self, selectionIndexPaths: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexPaths : selectionIndexPaths)
    }
}
pub trait PNSCollectionViewDataSource: Sized + std::ops::Deref {
    unsafe fn collectionView_numberOfItemsInSection_(
        &self,
        collectionView: NSCollectionView,
        section: NSInteger,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, numberOfItemsInSection : section)
    }
    unsafe fn collectionView_itemForRepresentedObjectAtIndexPath_(
        &self,
        collectionView: NSCollectionView,
        indexPath: NSIndexPath,
    ) -> NSCollectionViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, itemForRepresentedObjectAtIndexPath : indexPath)
    }
    unsafe fn numberOfSectionsInCollectionView_(
        &self,
        collectionView: NSCollectionView,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfSectionsInCollectionView : collectionView)
    }
    unsafe fn collectionView_viewForSupplementaryElementOfKind_atIndexPath_(
        &self,
        collectionView: NSCollectionView,
        kind: NSString,
        indexPath: NSIndexPath,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, viewForSupplementaryElementOfKind : kind, atIndexPath : indexPath)
    }
}
pub trait PNSCollectionViewPrefetching: Sized + std::ops::Deref {
    unsafe fn collectionView_prefetchItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, prefetchItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_cancelPrefetchingForItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, cancelPrefetchingForItemsAtIndexPaths : indexPaths)
    }
}
pub trait PNSCollectionViewDelegate: Sized + std::ops::Deref {
    unsafe fn collectionView_canDragItemsAtIndexPaths_withEvent_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
        event: NSEvent,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, canDragItemsAtIndexPaths : indexPaths, withEvent : event)
    }
    unsafe fn collectionView_canDragItemsAtIndexes_withEvent_(
        &self,
        collectionView: NSCollectionView,
        indexes: NSIndexSet,
        event: NSEvent,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, canDragItemsAtIndexes : indexes, withEvent : event)
    }
    unsafe fn collectionView_writeItemsAtIndexPaths_toPasteboard_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, writeItemsAtIndexPaths : indexPaths, toPasteboard : pasteboard)
    }
    unsafe fn collectionView_writeItemsAtIndexes_toPasteboard_(
        &self,
        collectionView: NSCollectionView,
        indexes: NSIndexSet,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, writeItemsAtIndexes : indexes, toPasteboard : pasteboard)
    }
    unsafe fn collectionView_namesOfPromisedFilesDroppedAtDestination_forDraggedItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        dropURL: NSURL,
        indexPaths: NSSet,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, namesOfPromisedFilesDroppedAtDestination : dropURL, forDraggedItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_namesOfPromisedFilesDroppedAtDestination_forDraggedItemsAtIndexes_(
        &self,
        collectionView: NSCollectionView,
        dropURL: NSURL,
        indexes: NSIndexSet,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, namesOfPromisedFilesDroppedAtDestination : dropURL, forDraggedItemsAtIndexes : indexes)
    }
    unsafe fn collectionView_draggingImageForItemsAtIndexPaths_withEvent_offset_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
        event: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, draggingImageForItemsAtIndexPaths : indexPaths, withEvent : event, offset : dragImageOffset)
    }
    unsafe fn collectionView_draggingImageForItemsAtIndexes_withEvent_offset_(
        &self,
        collectionView: NSCollectionView,
        indexes: NSIndexSet,
        event: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, draggingImageForItemsAtIndexes : indexes, withEvent : event, offset : dragImageOffset)
    }
    unsafe fn collectionView_validateDrop_proposedIndexPath_dropOperation_(
        &self,
        collectionView: NSCollectionView,
        draggingInfo: *mut u64,
        proposedDropIndexPath: *mut NSIndexPath,
        proposedDropOperation: *mut NSCollectionViewDropOperation,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, validateDrop : draggingInfo, proposedIndexPath : proposedDropIndexPath, dropOperation : proposedDropOperation)
    }
    unsafe fn collectionView_validateDrop_proposedIndex_dropOperation_(
        &self,
        collectionView: NSCollectionView,
        draggingInfo: *mut u64,
        proposedDropIndex: *mut NSInteger,
        proposedDropOperation: *mut NSCollectionViewDropOperation,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, validateDrop : draggingInfo, proposedIndex : proposedDropIndex, dropOperation : proposedDropOperation)
    }
    unsafe fn collectionView_acceptDrop_indexPath_dropOperation_(
        &self,
        collectionView: NSCollectionView,
        draggingInfo: *mut u64,
        indexPath: NSIndexPath,
        dropOperation: NSCollectionViewDropOperation,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, acceptDrop : draggingInfo, indexPath : indexPath, dropOperation : dropOperation)
    }
    unsafe fn collectionView_acceptDrop_index_dropOperation_(
        &self,
        collectionView: NSCollectionView,
        draggingInfo: *mut u64,
        index: NSInteger,
        dropOperation: NSCollectionViewDropOperation,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, acceptDrop : draggingInfo, index : index, dropOperation : dropOperation)
    }
    unsafe fn collectionView_pasteboardWriterForItemAtIndexPath_(
        &self,
        collectionView: NSCollectionView,
        indexPath: NSIndexPath,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, pasteboardWriterForItemAtIndexPath : indexPath)
    }
    unsafe fn collectionView_pasteboardWriterForItemAtIndex_(
        &self,
        collectionView: NSCollectionView,
        index: NSUInteger,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, pasteboardWriterForItemAtIndex : index)
    }
    unsafe fn collectionView_draggingSession_willBeginAtPoint_forItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        indexPaths: NSSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, draggingSession : session, willBeginAtPoint : screenPoint, forItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_draggingSession_willBeginAtPoint_forItemsAtIndexes_(
        &self,
        collectionView: NSCollectionView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        indexes: NSIndexSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, draggingSession : session, willBeginAtPoint : screenPoint, forItemsAtIndexes : indexes)
    }
    unsafe fn collectionView_draggingSession_endedAtPoint_dragOperation_(
        &self,
        collectionView: NSCollectionView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        operation: NSDragOperation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, draggingSession : session, endedAtPoint : screenPoint, dragOperation : operation)
    }
    unsafe fn collectionView_updateDraggingItemsForDrag_(
        &self,
        collectionView: NSCollectionView,
        draggingInfo: *mut u64,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, updateDraggingItemsForDrag : draggingInfo)
    }
    unsafe fn collectionView_shouldChangeItemsAtIndexPaths_toHighlightState_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
        highlightState: NSCollectionViewItemHighlightState,
    ) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, shouldChangeItemsAtIndexPaths : indexPaths, toHighlightState : highlightState)
    }
    unsafe fn collectionView_didChangeItemsAtIndexPaths_toHighlightState_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
        highlightState: NSCollectionViewItemHighlightState,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, didChangeItemsAtIndexPaths : indexPaths, toHighlightState : highlightState)
    }
    unsafe fn collectionView_shouldSelectItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
    ) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, shouldSelectItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_shouldDeselectItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
    ) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, shouldDeselectItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_didSelectItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, didSelectItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_didDeselectItemsAtIndexPaths_(
        &self,
        collectionView: NSCollectionView,
        indexPaths: NSSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, didDeselectItemsAtIndexPaths : indexPaths)
    }
    unsafe fn collectionView_willDisplayItem_forRepresentedObjectAtIndexPath_(
        &self,
        collectionView: NSCollectionView,
        item: NSCollectionViewItem,
        indexPath: NSIndexPath,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, willDisplayItem : item, forRepresentedObjectAtIndexPath : indexPath)
    }
    unsafe fn collectionView_willDisplaySupplementaryView_forElementKind_atIndexPath_(
        &self,
        collectionView: NSCollectionView,
        view: NSView,
        elementKind: NSString,
        indexPath: NSIndexPath,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, willDisplaySupplementaryView : view, forElementKind : elementKind, atIndexPath : indexPath)
    }
    unsafe fn collectionView_didEndDisplayingItem_forRepresentedObjectAtIndexPath_(
        &self,
        collectionView: NSCollectionView,
        item: NSCollectionViewItem,
        indexPath: NSIndexPath,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, didEndDisplayingItem : item, forRepresentedObjectAtIndexPath : indexPath)
    }
    unsafe fn collectionView_didEndDisplayingSupplementaryView_forElementOfKind_atIndexPath_(
        &self,
        collectionView: NSCollectionView,
        view: NSView,
        elementKind: NSString,
        indexPath: NSIndexPath,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, didEndDisplayingSupplementaryView : view, forElementOfKind : elementKind, atIndexPath : indexPath)
    }
    unsafe fn collectionView_transitionLayoutForOldLayout_newLayout_(
        &self,
        collectionView: NSCollectionView,
        fromLayout: NSCollectionViewLayout,
        toLayout: NSCollectionViewLayout,
    ) -> NSCollectionViewTransitionLayout
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, transitionLayoutForOldLayout : fromLayout, newLayout : toLayout)
    }
}
impl NSCollectionView_NSDeprecated for NSCollectionView {}
pub type NSCollectionElementCategory = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewLayoutAttributes(pub id);
impl std::ops::Deref for NSCollectionViewLayoutAttributes {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewLayoutAttributes {}
impl NSCollectionViewLayoutAttributes {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutAttributes").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionViewLayoutAttributes {}
impl INSObject for NSCollectionViewLayoutAttributes {}
impl PNSObject for NSCollectionViewLayoutAttributes {}
impl std::convert::TryFrom<NSObject> for NSCollectionViewLayoutAttributes {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionViewLayoutAttributes, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutAttributes").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewLayoutAttributes(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionViewLayoutAttributes")
        }
    }
}
impl INSCollectionViewLayoutAttributes for NSCollectionViewLayoutAttributes {}
pub trait INSCollectionViewLayoutAttributes: Sized + std::ops::Deref {
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn setFrame_(&self, frame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frame)
    }
    unsafe fn size(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, size)
    }
    unsafe fn setSize_(&self, size: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSize : size)
    }
    unsafe fn alpha(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alpha)
    }
    unsafe fn setAlpha_(&self, alpha: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlpha : alpha)
    }
    unsafe fn zIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, zIndex)
    }
    unsafe fn setZIndex_(&self, zIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setZIndex : zIndex)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn indexPath(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexPath)
    }
    unsafe fn setIndexPath_(&self, indexPath: NSIndexPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndexPath : indexPath)
    }
    unsafe fn representedElementCategory(&self) -> NSCollectionElementCategory
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedElementCategory)
    }
    unsafe fn representedElementKind(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedElementKind)
    }
    unsafe fn layoutAttributesForItemWithIndexPath_(indexPath: NSIndexPath) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutAttributes").unwrap(), layoutAttributesForItemWithIndexPath : indexPath)
    }
    unsafe fn layoutAttributesForInterItemGapBeforeIndexPath_(
        indexPath: NSIndexPath,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutAttributes").unwrap(), layoutAttributesForInterItemGapBeforeIndexPath : indexPath)
    }
    unsafe fn layoutAttributesForSupplementaryViewOfKind_withIndexPath_(
        elementKind: NSString,
        indexPath: NSIndexPath,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutAttributes").unwrap(), layoutAttributesForSupplementaryViewOfKind : elementKind, withIndexPath : indexPath)
    }
    unsafe fn layoutAttributesForDecorationViewOfKind_withIndexPath_(
        decorationViewKind: NSString,
        indexPath: NSIndexPath,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutAttributes").unwrap(), layoutAttributesForDecorationViewOfKind : decorationViewKind, withIndexPath : indexPath)
    }
}
pub type NSCollectionUpdateAction = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewUpdateItem(pub id);
impl std::ops::Deref for NSCollectionViewUpdateItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewUpdateItem {}
impl NSCollectionViewUpdateItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewUpdateItem").unwrap(), alloc) })
    }
}
impl INSObject for NSCollectionViewUpdateItem {}
impl PNSObject for NSCollectionViewUpdateItem {}
impl std::convert::TryFrom<NSObject> for NSCollectionViewUpdateItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionViewUpdateItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewUpdateItem").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionViewUpdateItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionViewUpdateItem")
        }
    }
}
impl INSCollectionViewUpdateItem for NSCollectionViewUpdateItem {}
pub trait INSCollectionViewUpdateItem: Sized + std::ops::Deref {
    unsafe fn indexPathBeforeUpdate(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexPathBeforeUpdate)
    }
    unsafe fn indexPathAfterUpdate(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexPathAfterUpdate)
    }
    unsafe fn updateAction(&self) -> NSCollectionUpdateAction
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateAction)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewLayoutInvalidationContext(pub id);
impl std::ops::Deref for NSCollectionViewLayoutInvalidationContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewLayoutInvalidationContext {}
impl NSCollectionViewLayoutInvalidationContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutInvalidationContext").unwrap(), alloc) })
    }
}
impl INSObject for NSCollectionViewLayoutInvalidationContext {}
impl PNSObject for NSCollectionViewLayoutInvalidationContext {}
impl std::convert::TryFrom<NSObject> for NSCollectionViewLayoutInvalidationContext {
    type Error = &'static str;
    fn try_from(
        parent: NSObject,
    ) -> Result<NSCollectionViewLayoutInvalidationContext, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewLayoutInvalidationContext").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewLayoutInvalidationContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionViewLayoutInvalidationContext")
        }
    }
}
impl INSCollectionViewLayoutInvalidationContext for NSCollectionViewLayoutInvalidationContext {}
pub trait INSCollectionViewLayoutInvalidationContext: Sized + std::ops::Deref {
    unsafe fn invalidateItemsAtIndexPaths_(&self, indexPaths: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateItemsAtIndexPaths : indexPaths)
    }
    unsafe fn invalidateSupplementaryElementsOfKind_atIndexPaths_(
        &self,
        elementKind: NSString,
        indexPaths: NSSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateSupplementaryElementsOfKind : elementKind, atIndexPaths : indexPaths)
    }
    unsafe fn invalidateDecorationElementsOfKind_atIndexPaths_(
        &self,
        elementKind: NSString,
        indexPaths: NSSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateDecorationElementsOfKind : elementKind, atIndexPaths : indexPaths)
    }
    unsafe fn invalidateEverything(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateEverything)
    }
    unsafe fn invalidateDataSourceCounts(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateDataSourceCounts)
    }
    unsafe fn invalidatedItemIndexPaths(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidatedItemIndexPaths)
    }
    unsafe fn invalidatedSupplementaryIndexPaths(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidatedSupplementaryIndexPaths)
    }
    unsafe fn invalidatedDecorationIndexPaths(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidatedDecorationIndexPaths)
    }
    unsafe fn contentOffsetAdjustment(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentOffsetAdjustment)
    }
    unsafe fn setContentOffsetAdjustment_(&self, contentOffsetAdjustment: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentOffsetAdjustment : contentOffsetAdjustment)
    }
    unsafe fn contentSizeAdjustment(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentSizeAdjustment)
    }
    unsafe fn setContentSizeAdjustment_(&self, contentSizeAdjustment: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentSizeAdjustment : contentSizeAdjustment)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewLayout(pub id);
impl std::ops::Deref for NSCollectionViewLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewLayout {}
impl NSCollectionViewLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewLayout").unwrap(), alloc) })
    }
}
impl PNSCoding for NSCollectionViewLayout {}
impl INSObject for NSCollectionViewLayout {}
impl PNSObject for NSCollectionViewLayout {}
impl std::convert::TryFrom<NSObject> for NSCollectionViewLayout {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionViewLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewLayout").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionViewLayout(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionViewLayout")
        }
    }
}
impl INSCollectionViewLayout for NSCollectionViewLayout {}
pub trait INSCollectionViewLayout: Sized + std::ops::Deref {
    unsafe fn invalidateLayout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateLayout)
    }
    unsafe fn invalidateLayoutWithContext_(
        &self,
        context: NSCollectionViewLayoutInvalidationContext,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateLayoutWithContext : context)
    }
    unsafe fn registerClass_forDecorationViewOfKind_(&self, viewClass: Class, elementKind: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerClass : viewClass, forDecorationViewOfKind : elementKind)
    }
    unsafe fn registerNib_forDecorationViewOfKind_(&self, nib: NSNib, elementKind: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerNib : nib, forDecorationViewOfKind : elementKind)
    }
    unsafe fn collectionView(&self) -> NSCollectionView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collectionView)
    }
}
impl NSCollectionViewLayout_NSSubclassingHooks for NSCollectionViewLayout {}
impl NSCollectionViewLayout_NSUpdateSupportHooks for NSCollectionViewLayout {}
pub type NSCollectionViewScrollDirection = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewFlowLayoutInvalidationContext(pub id);
impl std::ops::Deref for NSCollectionViewFlowLayoutInvalidationContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewFlowLayoutInvalidationContext {}
impl NSCollectionViewFlowLayoutInvalidationContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewFlowLayoutInvalidationContext").unwrap(), alloc) })
    }
}
impl INSCollectionViewLayoutInvalidationContext for NSCollectionViewFlowLayoutInvalidationContext {}
impl From<NSCollectionViewFlowLayoutInvalidationContext>
    for NSCollectionViewLayoutInvalidationContext
{
    fn from(
        child: NSCollectionViewFlowLayoutInvalidationContext,
    ) -> NSCollectionViewLayoutInvalidationContext {
        NSCollectionViewLayoutInvalidationContext(child.0)
    }
}
impl std::convert::TryFrom<NSCollectionViewLayoutInvalidationContext>
    for NSCollectionViewFlowLayoutInvalidationContext
{
    type Error = &'static str;
    fn try_from(
        parent: NSCollectionViewLayoutInvalidationContext,
    ) -> Result<NSCollectionViewFlowLayoutInvalidationContext, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewFlowLayoutInvalidationContext").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewFlowLayoutInvalidationContext(parent.0))
        } else {
            Err ("This NSCollectionViewLayoutInvalidationContext cannot be downcasted to NSCollectionViewFlowLayoutInvalidationContext" ,)
        }
    }
}
impl INSObject for NSCollectionViewFlowLayoutInvalidationContext {}
impl PNSObject for NSCollectionViewFlowLayoutInvalidationContext {}
impl INSCollectionViewFlowLayoutInvalidationContext
    for NSCollectionViewFlowLayoutInvalidationContext
{
}
pub trait INSCollectionViewFlowLayoutInvalidationContext: Sized + std::ops::Deref {
    unsafe fn invalidateFlowLayoutDelegateMetrics(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateFlowLayoutDelegateMetrics)
    }
    unsafe fn setInvalidateFlowLayoutDelegateMetrics_(
        &self,
        invalidateFlowLayoutDelegateMetrics: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInvalidateFlowLayoutDelegateMetrics : invalidateFlowLayoutDelegateMetrics)
    }
    unsafe fn invalidateFlowLayoutAttributes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateFlowLayoutAttributes)
    }
    unsafe fn setInvalidateFlowLayoutAttributes_(&self, invalidateFlowLayoutAttributes: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInvalidateFlowLayoutAttributes : invalidateFlowLayoutAttributes)
    }
}
pub trait PNSCollectionViewDelegateFlowLayout: Sized + std::ops::Deref {
    unsafe fn collectionView_layout_sizeForItemAtIndexPath_(
        &self,
        collectionView: NSCollectionView,
        collectionViewLayout: NSCollectionViewLayout,
        indexPath: NSIndexPath,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, layout : collectionViewLayout, sizeForItemAtIndexPath : indexPath)
    }
    unsafe fn collectionView_layout_insetForSectionAtIndex_(
        &self,
        collectionView: NSCollectionView,
        collectionViewLayout: NSCollectionViewLayout,
        section: NSInteger,
    ) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, layout : collectionViewLayout, insetForSectionAtIndex : section)
    }
    unsafe fn collectionView_layout_minimumLineSpacingForSectionAtIndex_(
        &self,
        collectionView: NSCollectionView,
        collectionViewLayout: NSCollectionViewLayout,
        section: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, layout : collectionViewLayout, minimumLineSpacingForSectionAtIndex : section)
    }
    unsafe fn collectionView_layout_minimumInteritemSpacingForSectionAtIndex_(
        &self,
        collectionView: NSCollectionView,
        collectionViewLayout: NSCollectionViewLayout,
        section: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, layout : collectionViewLayout, minimumInteritemSpacingForSectionAtIndex : section)
    }
    unsafe fn collectionView_layout_referenceSizeForHeaderInSection_(
        &self,
        collectionView: NSCollectionView,
        collectionViewLayout: NSCollectionViewLayout,
        section: NSInteger,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, layout : collectionViewLayout, referenceSizeForHeaderInSection : section)
    }
    unsafe fn collectionView_layout_referenceSizeForFooterInSection_(
        &self,
        collectionView: NSCollectionView,
        collectionViewLayout: NSCollectionViewLayout,
        section: NSInteger,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collectionView : collectionView, layout : collectionViewLayout, referenceSizeForFooterInSection : section)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewFlowLayout(pub id);
impl std::ops::Deref for NSCollectionViewFlowLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewFlowLayout {}
impl NSCollectionViewFlowLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewFlowLayout").unwrap(), alloc) })
    }
}
impl INSCollectionViewLayout for NSCollectionViewFlowLayout {}
impl PNSCoding for NSCollectionViewFlowLayout {}
impl From<NSCollectionViewFlowLayout> for NSCollectionViewLayout {
    fn from(child: NSCollectionViewFlowLayout) -> NSCollectionViewLayout {
        NSCollectionViewLayout(child.0)
    }
}
impl std::convert::TryFrom<NSCollectionViewLayout> for NSCollectionViewFlowLayout {
    type Error = &'static str;
    fn try_from(parent: NSCollectionViewLayout) -> Result<NSCollectionViewFlowLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewFlowLayout").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionViewFlowLayout(parent.0))
        } else {
            Err("This NSCollectionViewLayout cannot be downcasted to NSCollectionViewFlowLayout")
        }
    }
}
impl INSObject for NSCollectionViewFlowLayout {}
impl PNSObject for NSCollectionViewFlowLayout {}
impl INSCollectionViewFlowLayout for NSCollectionViewFlowLayout {}
pub trait INSCollectionViewFlowLayout: Sized + std::ops::Deref {
    unsafe fn sectionAtIndexIsCollapsed_(&self, sectionIndex: NSUInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sectionAtIndexIsCollapsed : sectionIndex)
    }
    unsafe fn collapseSectionAtIndex_(&self, sectionIndex: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collapseSectionAtIndex : sectionIndex)
    }
    unsafe fn expandSectionAtIndex_(&self, sectionIndex: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, expandSectionAtIndex : sectionIndex)
    }
    unsafe fn minimumLineSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumLineSpacing)
    }
    unsafe fn setMinimumLineSpacing_(&self, minimumLineSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumLineSpacing : minimumLineSpacing)
    }
    unsafe fn minimumInteritemSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumInteritemSpacing)
    }
    unsafe fn setMinimumInteritemSpacing_(&self, minimumInteritemSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumInteritemSpacing : minimumInteritemSpacing)
    }
    unsafe fn itemSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemSize)
    }
    unsafe fn setItemSize_(&self, itemSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemSize : itemSize)
    }
    unsafe fn estimatedItemSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, estimatedItemSize)
    }
    unsafe fn setEstimatedItemSize_(&self, estimatedItemSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEstimatedItemSize : estimatedItemSize)
    }
    unsafe fn scrollDirection(&self) -> NSCollectionViewScrollDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollDirection)
    }
    unsafe fn setScrollDirection_(&self, scrollDirection: NSCollectionViewScrollDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollDirection : scrollDirection)
    }
    unsafe fn headerReferenceSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headerReferenceSize)
    }
    unsafe fn setHeaderReferenceSize_(&self, headerReferenceSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeaderReferenceSize : headerReferenceSize)
    }
    unsafe fn footerReferenceSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, footerReferenceSize)
    }
    unsafe fn setFooterReferenceSize_(&self, footerReferenceSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFooterReferenceSize : footerReferenceSize)
    }
    unsafe fn sectionInset(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sectionInset)
    }
    unsafe fn setSectionInset_(&self, sectionInset: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSectionInset : sectionInset)
    }
    unsafe fn sectionHeadersPinToVisibleBounds(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sectionHeadersPinToVisibleBounds)
    }
    unsafe fn setSectionHeadersPinToVisibleBounds_(&self, sectionHeadersPinToVisibleBounds: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSectionHeadersPinToVisibleBounds : sectionHeadersPinToVisibleBounds)
    }
    unsafe fn sectionFootersPinToVisibleBounds(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sectionFootersPinToVisibleBounds)
    }
    unsafe fn setSectionFootersPinToVisibleBounds_(&self, sectionFootersPinToVisibleBounds: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSectionFootersPinToVisibleBounds : sectionFootersPinToVisibleBounds)
    }
}
pub type NSDirectionalRectEdge = NSUInteger;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NSDirectionalEdgeInsets {
    pub top: CGFloat,
    pub leading: CGFloat,
    pub bottom: CGFloat,
    pub trailing: CGFloat,
}
pub type NSRectAlignment = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewCompositionalLayoutConfiguration(pub id);
impl std::ops::Deref for NSCollectionViewCompositionalLayoutConfiguration {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewCompositionalLayoutConfiguration {}
impl NSCollectionViewCompositionalLayoutConfiguration {
    pub fn alloc() -> Self {
        Self(unsafe {
            msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewCompositionalLayoutConfiguration").unwrap(), alloc)
        })
    }
}
impl PNSCopying for NSCollectionViewCompositionalLayoutConfiguration {}
impl INSObject for NSCollectionViewCompositionalLayoutConfiguration {}
impl PNSObject for NSCollectionViewCompositionalLayoutConfiguration {}
impl std::convert::TryFrom<NSObject> for NSCollectionViewCompositionalLayoutConfiguration {
    type Error = &'static str;
    fn try_from(
        parent: NSObject,
    ) -> Result<NSCollectionViewCompositionalLayoutConfiguration, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewCompositionalLayoutConfiguration").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewCompositionalLayoutConfiguration(parent.0))
        } else {
            Err ("This NSObject cannot be downcasted to NSCollectionViewCompositionalLayoutConfiguration" ,)
        }
    }
}
impl INSCollectionViewCompositionalLayoutConfiguration
    for NSCollectionViewCompositionalLayoutConfiguration
{
}
pub trait INSCollectionViewCompositionalLayoutConfiguration: Sized + std::ops::Deref {
    unsafe fn scrollDirection(&self) -> NSCollectionViewScrollDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollDirection)
    }
    unsafe fn setScrollDirection_(&self, scrollDirection: NSCollectionViewScrollDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollDirection : scrollDirection)
    }
    unsafe fn interSectionSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interSectionSpacing)
    }
    unsafe fn setInterSectionSpacing_(&self, interSectionSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInterSectionSpacing : interSectionSpacing)
    }
    unsafe fn boundarySupplementaryItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boundarySupplementaryItems)
    }
    unsafe fn setBoundarySupplementaryItems_(&self, boundarySupplementaryItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBoundarySupplementaryItems : boundarySupplementaryItems)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewCompositionalLayout(pub id);
impl std::ops::Deref for NSCollectionViewCompositionalLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewCompositionalLayout {}
impl NSCollectionViewCompositionalLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewCompositionalLayout").unwrap(), alloc) })
    }
}
impl INSCollectionViewLayout for NSCollectionViewCompositionalLayout {}
impl PNSCoding for NSCollectionViewCompositionalLayout {}
impl std::convert::TryFrom<NSCollectionViewLayout> for NSCollectionViewCompositionalLayout {
    type Error = &'static str;
    fn try_from(
        parent: NSCollectionViewLayout,
    ) -> Result<NSCollectionViewCompositionalLayout, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewCompositionalLayout").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewCompositionalLayout(parent.0))
        } else {
            Err ("This NSCollectionViewLayout cannot be downcasted to NSCollectionViewCompositionalLayout" ,)
        }
    }
}
impl INSObject for NSCollectionViewCompositionalLayout {}
impl PNSObject for NSCollectionViewCompositionalLayout {}
impl INSCollectionViewCompositionalLayout for NSCollectionViewCompositionalLayout {}
pub trait INSCollectionViewCompositionalLayout: Sized + std::ops::Deref {
    unsafe fn initWithSection_(&self, section: NSCollectionLayoutSection) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSection : section)
    }
    unsafe fn initWithSection_configuration_(
        &self,
        section: NSCollectionLayoutSection,
        configuration: NSCollectionViewCompositionalLayoutConfiguration,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSection : section, configuration : configuration)
    }
    unsafe fn initWithSectionProvider_(
        &self,
        sectionProvider: NSCollectionViewCompositionalLayoutSectionProvider,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSectionProvider : sectionProvider)
    }
    unsafe fn initWithSectionProvider_configuration_(
        &self,
        sectionProvider: NSCollectionViewCompositionalLayoutSectionProvider,
        configuration: NSCollectionViewCompositionalLayoutConfiguration,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSectionProvider : sectionProvider, configuration : configuration)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn configuration(&self) -> NSCollectionViewCompositionalLayoutConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, configuration)
    }
    unsafe fn setConfiguration_(
        &self,
        configuration: NSCollectionViewCompositionalLayoutConfiguration,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setConfiguration : configuration)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewCompositionalLayout").unwrap(), new)
    }
}
pub type NSCollectionLayoutSectionOrthogonalScrollingBehavior = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutSection(pub id);
impl std::ops::Deref for NSCollectionLayoutSection {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutSection {}
impl NSCollectionLayoutSection {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSection").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutSection {}
impl INSObject for NSCollectionLayoutSection {}
impl PNSObject for NSCollectionLayoutSection {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutSection {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutSection, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutSection").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutSection(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutSection")
        }
    }
}
impl INSCollectionLayoutSection for NSCollectionLayoutSection {}
pub trait INSCollectionLayoutSection: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn contentInsets(&self) -> NSDirectionalEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentInsets)
    }
    unsafe fn setContentInsets_(&self, contentInsets: NSDirectionalEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentInsets : contentInsets)
    }
    unsafe fn interGroupSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interGroupSpacing)
    }
    unsafe fn setInterGroupSpacing_(&self, interGroupSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInterGroupSpacing : interGroupSpacing)
    }
    unsafe fn orthogonalScrollingBehavior(
        &self,
    ) -> NSCollectionLayoutSectionOrthogonalScrollingBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, orthogonalScrollingBehavior)
    }
    unsafe fn setOrthogonalScrollingBehavior_(
        &self,
        orthogonalScrollingBehavior: NSCollectionLayoutSectionOrthogonalScrollingBehavior,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOrthogonalScrollingBehavior : orthogonalScrollingBehavior)
    }
    unsafe fn boundarySupplementaryItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boundarySupplementaryItems)
    }
    unsafe fn setBoundarySupplementaryItems_(&self, boundarySupplementaryItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBoundarySupplementaryItems : boundarySupplementaryItems)
    }
    unsafe fn supplementariesFollowContentInsets(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supplementariesFollowContentInsets)
    }
    unsafe fn setSupplementariesFollowContentInsets_(
        &self,
        supplementariesFollowContentInsets: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSupplementariesFollowContentInsets : supplementariesFollowContentInsets)
    }
    unsafe fn visibleItemsInvalidationHandler(
        &self,
    ) -> NSCollectionLayoutSectionVisibleItemsInvalidationHandler
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleItemsInvalidationHandler)
    }
    unsafe fn setVisibleItemsInvalidationHandler_(
        &self,
        visibleItemsInvalidationHandler: NSCollectionLayoutSectionVisibleItemsInvalidationHandler,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisibleItemsInvalidationHandler : visibleItemsInvalidationHandler)
    }
    unsafe fn decorationItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, decorationItems)
    }
    unsafe fn setDecorationItems_(&self, decorationItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDecorationItems : decorationItems)
    }
    unsafe fn sectionWithGroup_(group: NSCollectionLayoutGroup) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSection").unwrap(), sectionWithGroup : group)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSection").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutItem(pub id);
impl std::ops::Deref for NSCollectionLayoutItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutItem {}
impl NSCollectionLayoutItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutItem {}
impl INSObject for NSCollectionLayoutItem {}
impl PNSObject for NSCollectionLayoutItem {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutItem").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutItem")
        }
    }
}
impl INSCollectionLayoutItem for NSCollectionLayoutItem {}
pub trait INSCollectionLayoutItem: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn contentInsets(&self) -> NSDirectionalEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentInsets)
    }
    unsafe fn setContentInsets_(&self, contentInsets: NSDirectionalEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentInsets : contentInsets)
    }
    unsafe fn edgeSpacing(&self) -> NSCollectionLayoutEdgeSpacing
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, edgeSpacing)
    }
    unsafe fn setEdgeSpacing_(&self, edgeSpacing: NSCollectionLayoutEdgeSpacing)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEdgeSpacing : edgeSpacing)
    }
    unsafe fn layoutSize(&self) -> NSCollectionLayoutSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutSize)
    }
    unsafe fn supplementaryItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supplementaryItems)
    }
    unsafe fn itemWithLayoutSize_(layoutSize: NSCollectionLayoutSize) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutItem").unwrap(), itemWithLayoutSize : layoutSize)
    }
    unsafe fn itemWithLayoutSize_supplementaryItems_(
        layoutSize: NSCollectionLayoutSize,
        supplementaryItems: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutItem").unwrap(), itemWithLayoutSize : layoutSize, supplementaryItems : supplementaryItems)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutItem").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutGroupCustomItem(pub id);
impl std::ops::Deref for NSCollectionLayoutGroupCustomItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutGroupCustomItem {}
impl NSCollectionLayoutGroupCustomItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroupCustomItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutGroupCustomItem {}
impl INSObject for NSCollectionLayoutGroupCustomItem {}
impl PNSObject for NSCollectionLayoutGroupCustomItem {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutGroupCustomItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutGroupCustomItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroupCustomItem").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionLayoutGroupCustomItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutGroupCustomItem")
        }
    }
}
impl INSCollectionLayoutGroupCustomItem for NSCollectionLayoutGroupCustomItem {}
pub trait INSCollectionLayoutGroupCustomItem: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn zIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, zIndex)
    }
    unsafe fn customItemWithFrame_(frame: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroupCustomItem").unwrap(), customItemWithFrame : frame)
    }
    unsafe fn customItemWithFrame_zIndex_(frame: NSRect, zIndex: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroupCustomItem").unwrap(), customItemWithFrame : frame, zIndex : zIndex)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroupCustomItem").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutGroup(pub id);
impl std::ops::Deref for NSCollectionLayoutGroup {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutGroup {}
impl NSCollectionLayoutGroup {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutGroup {}
impl INSCollectionLayoutItem for NSCollectionLayoutGroup {}
impl From<NSCollectionLayoutGroup> for NSCollectionLayoutItem {
    fn from(child: NSCollectionLayoutGroup) -> NSCollectionLayoutItem {
        NSCollectionLayoutItem(child.0)
    }
}
impl std::convert::TryFrom<NSCollectionLayoutItem> for NSCollectionLayoutGroup {
    type Error = &'static str;
    fn try_from(parent: NSCollectionLayoutItem) -> Result<NSCollectionLayoutGroup, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutGroup(parent.0))
        } else {
            Err("This NSCollectionLayoutItem cannot be downcasted to NSCollectionLayoutGroup")
        }
    }
}
impl INSObject for NSCollectionLayoutGroup {}
impl PNSObject for NSCollectionLayoutGroup {}
impl INSCollectionLayoutGroup for NSCollectionLayoutGroup {}
pub trait INSCollectionLayoutGroup: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn visualDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visualDescription)
    }
    unsafe fn supplementaryItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supplementaryItems)
    }
    unsafe fn setSupplementaryItems_(&self, supplementaryItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSupplementaryItems : supplementaryItems)
    }
    unsafe fn interItemSpacing(&self) -> NSCollectionLayoutSpacing
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interItemSpacing)
    }
    unsafe fn setInterItemSpacing_(&self, interItemSpacing: NSCollectionLayoutSpacing)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInterItemSpacing : interItemSpacing)
    }
    unsafe fn subitems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subitems)
    }
    unsafe fn horizontalGroupWithLayoutSize_subitem_count_(
        layoutSize: NSCollectionLayoutSize,
        subitem: NSCollectionLayoutItem,
        count: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), horizontalGroupWithLayoutSize : layoutSize, subitem : subitem, count : count)
    }
    unsafe fn horizontalGroupWithLayoutSize_subitems_(
        layoutSize: NSCollectionLayoutSize,
        subitems: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), horizontalGroupWithLayoutSize : layoutSize, subitems : subitems)
    }
    unsafe fn verticalGroupWithLayoutSize_subitem_count_(
        layoutSize: NSCollectionLayoutSize,
        subitem: NSCollectionLayoutItem,
        count: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), verticalGroupWithLayoutSize : layoutSize, subitem : subitem, count : count)
    }
    unsafe fn verticalGroupWithLayoutSize_subitems_(
        layoutSize: NSCollectionLayoutSize,
        subitems: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), verticalGroupWithLayoutSize : layoutSize, subitems : subitems)
    }
    unsafe fn customGroupWithLayoutSize_itemProvider_(
        layoutSize: NSCollectionLayoutSize,
        itemProvider: NSCollectionLayoutGroupCustomItemProvider,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), customGroupWithLayoutSize : layoutSize, itemProvider : itemProvider)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutGroup").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutDimension(pub id);
impl std::ops::Deref for NSCollectionLayoutDimension {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutDimension {}
impl NSCollectionLayoutDimension {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutDimension {}
impl INSObject for NSCollectionLayoutDimension {}
impl PNSObject for NSCollectionLayoutDimension {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutDimension {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutDimension, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutDimension(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutDimension")
        }
    }
}
impl INSCollectionLayoutDimension for NSCollectionLayoutDimension {}
pub trait INSCollectionLayoutDimension: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn isFractionalWidth(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFractionalWidth)
    }
    unsafe fn isFractionalHeight(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFractionalHeight)
    }
    unsafe fn isAbsolute(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAbsolute)
    }
    unsafe fn isEstimated(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEstimated)
    }
    unsafe fn dimension(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dimension)
    }
    unsafe fn fractionalWidthDimension_(fractionalWidth: CGFloat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap(), fractionalWidthDimension : fractionalWidth)
    }
    unsafe fn fractionalHeightDimension_(fractionalHeight: CGFloat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap(), fractionalHeightDimension : fractionalHeight)
    }
    unsafe fn absoluteDimension_(absoluteDimension: CGFloat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap(), absoluteDimension : absoluteDimension)
    }
    unsafe fn estimatedDimension_(estimatedDimension: CGFloat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap(), estimatedDimension : estimatedDimension)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDimension").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutSize(pub id);
impl std::ops::Deref for NSCollectionLayoutSize {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutSize {}
impl NSCollectionLayoutSize {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSize").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutSize {}
impl INSObject for NSCollectionLayoutSize {}
impl PNSObject for NSCollectionLayoutSize {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutSize {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutSize, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutSize").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutSize(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutSize")
        }
    }
}
impl INSCollectionLayoutSize for NSCollectionLayoutSize {}
pub trait INSCollectionLayoutSize: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn widthDimension(&self) -> NSCollectionLayoutDimension
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, widthDimension)
    }
    unsafe fn heightDimension(&self) -> NSCollectionLayoutDimension
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, heightDimension)
    }
    unsafe fn sizeWithWidthDimension_heightDimension_(
        width: NSCollectionLayoutDimension,
        height: NSCollectionLayoutDimension,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSize").unwrap(), sizeWithWidthDimension : width, heightDimension : height)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSize").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutSpacing(pub id);
impl std::ops::Deref for NSCollectionLayoutSpacing {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutSpacing {}
impl NSCollectionLayoutSpacing {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSpacing").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutSpacing {}
impl INSObject for NSCollectionLayoutSpacing {}
impl PNSObject for NSCollectionLayoutSpacing {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutSpacing {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutSpacing, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutSpacing").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutSpacing(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutSpacing")
        }
    }
}
impl INSCollectionLayoutSpacing for NSCollectionLayoutSpacing {}
pub trait INSCollectionLayoutSpacing: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn spacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spacing)
    }
    unsafe fn isFlexibleSpacing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFlexibleSpacing)
    }
    unsafe fn isFixedSpacing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFixedSpacing)
    }
    unsafe fn flexibleSpacing_(flexibleSpacing: CGFloat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSpacing").unwrap(), flexibleSpacing : flexibleSpacing)
    }
    unsafe fn fixedSpacing_(fixedSpacing: CGFloat) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSpacing").unwrap(), fixedSpacing : fixedSpacing)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSpacing").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutEdgeSpacing(pub id);
impl std::ops::Deref for NSCollectionLayoutEdgeSpacing {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutEdgeSpacing {}
impl NSCollectionLayoutEdgeSpacing {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutEdgeSpacing").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutEdgeSpacing {}
impl INSObject for NSCollectionLayoutEdgeSpacing {}
impl PNSObject for NSCollectionLayoutEdgeSpacing {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutEdgeSpacing {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutEdgeSpacing, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutEdgeSpacing").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionLayoutEdgeSpacing(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutEdgeSpacing")
        }
    }
}
impl INSCollectionLayoutEdgeSpacing for NSCollectionLayoutEdgeSpacing {}
pub trait INSCollectionLayoutEdgeSpacing: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn leading(&self) -> NSCollectionLayoutSpacing
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leading)
    }
    unsafe fn top(&self) -> NSCollectionLayoutSpacing
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, top)
    }
    unsafe fn trailing(&self) -> NSCollectionLayoutSpacing
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trailing)
    }
    unsafe fn bottom(&self) -> NSCollectionLayoutSpacing
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bottom)
    }
    unsafe fn spacingForLeading_top_trailing_bottom_(
        leading: NSCollectionLayoutSpacing,
        top: NSCollectionLayoutSpacing,
        trailing: NSCollectionLayoutSpacing,
        bottom: NSCollectionLayoutSpacing,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutEdgeSpacing").unwrap(), spacingForLeading : leading, top : top, trailing : trailing, bottom : bottom)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutEdgeSpacing").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutSupplementaryItem(pub id);
impl std::ops::Deref for NSCollectionLayoutSupplementaryItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutSupplementaryItem {}
impl NSCollectionLayoutSupplementaryItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSupplementaryItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutSupplementaryItem {}
impl INSCollectionLayoutItem for NSCollectionLayoutSupplementaryItem {}
impl std::convert::TryFrom<NSCollectionLayoutItem> for NSCollectionLayoutSupplementaryItem {
    type Error = &'static str;
    fn try_from(
        parent: NSCollectionLayoutItem,
    ) -> Result<NSCollectionLayoutSupplementaryItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutSupplementaryItem").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionLayoutSupplementaryItem(parent.0))
        } else {
            Err ("This NSCollectionLayoutItem cannot be downcasted to NSCollectionLayoutSupplementaryItem" ,)
        }
    }
}
impl INSObject for NSCollectionLayoutSupplementaryItem {}
impl PNSObject for NSCollectionLayoutSupplementaryItem {}
impl INSCollectionLayoutSupplementaryItem for NSCollectionLayoutSupplementaryItem {}
pub trait INSCollectionLayoutSupplementaryItem: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn zIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, zIndex)
    }
    unsafe fn setZIndex_(&self, zIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setZIndex : zIndex)
    }
    unsafe fn elementKind(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, elementKind)
    }
    unsafe fn containerAnchor(&self) -> NSCollectionLayoutAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, containerAnchor)
    }
    unsafe fn itemAnchor(&self) -> NSCollectionLayoutAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemAnchor)
    }
    unsafe fn supplementaryItemWithLayoutSize_elementKind_containerAnchor_(
        layoutSize: NSCollectionLayoutSize,
        elementKind: NSString,
        containerAnchor: NSCollectionLayoutAnchor,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSupplementaryItem").unwrap(), supplementaryItemWithLayoutSize : layoutSize, elementKind : elementKind, containerAnchor : containerAnchor)
    }
    unsafe fn supplementaryItemWithLayoutSize_elementKind_containerAnchor_itemAnchor_(
        layoutSize: NSCollectionLayoutSize,
        elementKind: NSString,
        containerAnchor: NSCollectionLayoutAnchor,
        itemAnchor: NSCollectionLayoutAnchor,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSupplementaryItem").unwrap(), supplementaryItemWithLayoutSize : layoutSize, elementKind : elementKind, containerAnchor : containerAnchor, itemAnchor : itemAnchor)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutSupplementaryItem").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutBoundarySupplementaryItem(pub id);
impl std::ops::Deref for NSCollectionLayoutBoundarySupplementaryItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutBoundarySupplementaryItem {}
impl NSCollectionLayoutBoundarySupplementaryItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutBoundarySupplementaryItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutBoundarySupplementaryItem {}
impl INSCollectionLayoutSupplementaryItem for NSCollectionLayoutBoundarySupplementaryItem {}
impl From<NSCollectionLayoutBoundarySupplementaryItem> for NSCollectionLayoutSupplementaryItem {
    fn from(
        child: NSCollectionLayoutBoundarySupplementaryItem,
    ) -> NSCollectionLayoutSupplementaryItem {
        NSCollectionLayoutSupplementaryItem(child.0)
    }
}
impl std::convert::TryFrom<NSCollectionLayoutSupplementaryItem>
    for NSCollectionLayoutBoundarySupplementaryItem
{
    type Error = &'static str;
    fn try_from(
        parent: NSCollectionLayoutSupplementaryItem,
    ) -> Result<NSCollectionLayoutBoundarySupplementaryItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutBoundarySupplementaryItem").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionLayoutBoundarySupplementaryItem(parent.0))
        } else {
            Err ("This NSCollectionLayoutSupplementaryItem cannot be downcasted to NSCollectionLayoutBoundarySupplementaryItem" ,)
        }
    }
}
impl INSCollectionLayoutItem for NSCollectionLayoutBoundarySupplementaryItem {}
impl INSObject for NSCollectionLayoutBoundarySupplementaryItem {}
impl PNSObject for NSCollectionLayoutBoundarySupplementaryItem {}
impl INSCollectionLayoutBoundarySupplementaryItem for NSCollectionLayoutBoundarySupplementaryItem {}
pub trait INSCollectionLayoutBoundarySupplementaryItem: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn extendsBoundary(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, extendsBoundary)
    }
    unsafe fn setExtendsBoundary_(&self, extendsBoundary: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setExtendsBoundary : extendsBoundary)
    }
    unsafe fn pinToVisibleBounds(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pinToVisibleBounds)
    }
    unsafe fn setPinToVisibleBounds_(&self, pinToVisibleBounds: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPinToVisibleBounds : pinToVisibleBounds)
    }
    unsafe fn alignment(&self) -> NSRectAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alignment)
    }
    unsafe fn offset(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offset)
    }
    unsafe fn boundarySupplementaryItemWithLayoutSize_elementKind_alignment_(
        layoutSize: NSCollectionLayoutSize,
        elementKind: NSString,
        alignment: NSRectAlignment,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutBoundarySupplementaryItem").unwrap(), boundarySupplementaryItemWithLayoutSize : layoutSize, elementKind : elementKind, alignment : alignment)
    }
    unsafe fn boundarySupplementaryItemWithLayoutSize_elementKind_alignment_absoluteOffset_(
        layoutSize: NSCollectionLayoutSize,
        elementKind: NSString,
        alignment: NSRectAlignment,
        absoluteOffset: NSPoint,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutBoundarySupplementaryItem").unwrap(), boundarySupplementaryItemWithLayoutSize : layoutSize, elementKind : elementKind, alignment : alignment, absoluteOffset : absoluteOffset)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutBoundarySupplementaryItem").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutDecorationItem(pub id);
impl std::ops::Deref for NSCollectionLayoutDecorationItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutDecorationItem {}
impl NSCollectionLayoutDecorationItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDecorationItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutDecorationItem {}
impl INSCollectionLayoutItem for NSCollectionLayoutDecorationItem {}
impl std::convert::TryFrom<NSCollectionLayoutItem> for NSCollectionLayoutDecorationItem {
    type Error = &'static str;
    fn try_from(
        parent: NSCollectionLayoutItem,
    ) -> Result<NSCollectionLayoutDecorationItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutDecorationItem").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionLayoutDecorationItem(parent.0))
        } else {
            Err ("This NSCollectionLayoutItem cannot be downcasted to NSCollectionLayoutDecorationItem" ,)
        }
    }
}
impl INSObject for NSCollectionLayoutDecorationItem {}
impl PNSObject for NSCollectionLayoutDecorationItem {}
impl INSCollectionLayoutDecorationItem for NSCollectionLayoutDecorationItem {}
pub trait INSCollectionLayoutDecorationItem: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn zIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, zIndex)
    }
    unsafe fn setZIndex_(&self, zIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setZIndex : zIndex)
    }
    unsafe fn elementKind(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, elementKind)
    }
    unsafe fn backgroundDecorationItemWithElementKind_(elementKind: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDecorationItem").unwrap(), backgroundDecorationItemWithElementKind : elementKind)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutDecorationItem").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionLayoutAnchor(pub id);
impl std::ops::Deref for NSCollectionLayoutAnchor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionLayoutAnchor {}
impl NSCollectionLayoutAnchor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutAnchor").unwrap(), alloc) })
    }
}
impl PNSCopying for NSCollectionLayoutAnchor {}
impl INSObject for NSCollectionLayoutAnchor {}
impl PNSObject for NSCollectionLayoutAnchor {}
impl std::convert::TryFrom<NSObject> for NSCollectionLayoutAnchor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionLayoutAnchor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionLayoutAnchor").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionLayoutAnchor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionLayoutAnchor")
        }
    }
}
impl INSCollectionLayoutAnchor for NSCollectionLayoutAnchor {}
pub trait INSCollectionLayoutAnchor: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn edges(&self) -> NSDirectionalRectEdge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, edges)
    }
    unsafe fn offset(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, offset)
    }
    unsafe fn isAbsoluteOffset(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAbsoluteOffset)
    }
    unsafe fn isFractionalOffset(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFractionalOffset)
    }
    unsafe fn layoutAnchorWithEdges_(edges: NSDirectionalRectEdge) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutAnchor").unwrap(), layoutAnchorWithEdges : edges)
    }
    unsafe fn layoutAnchorWithEdges_absoluteOffset_(
        edges: NSDirectionalRectEdge,
        absoluteOffset: NSPoint,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutAnchor").unwrap(), layoutAnchorWithEdges : edges, absoluteOffset : absoluteOffset)
    }
    unsafe fn layoutAnchorWithEdges_fractionalOffset_(
        edges: NSDirectionalRectEdge,
        fractionalOffset: NSPoint,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutAnchor").unwrap(), layoutAnchorWithEdges : edges, fractionalOffset : fractionalOffset)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionLayoutAnchor").unwrap(), new)
    }
}
pub trait PNSCollectionLayoutContainer: Sized + std::ops::Deref {
    unsafe fn contentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentSize)
    }
    unsafe fn effectiveContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveContentSize)
    }
    unsafe fn contentInsets(&self) -> NSDirectionalEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentInsets)
    }
    unsafe fn effectiveContentInsets(&self) -> NSDirectionalEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveContentInsets)
    }
}
pub trait PNSCollectionLayoutEnvironment: Sized + std::ops::Deref {
    unsafe fn container(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, container)
    }
}
pub trait PNSCollectionLayoutVisibleItem: Sized + std::ops::Deref {
    unsafe fn alpha(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alpha)
    }
    unsafe fn setAlpha_(&self, alpha: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlpha : alpha)
    }
    unsafe fn zIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, zIndex)
    }
    unsafe fn setZIndex_(&self, zIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setZIndex : zIndex)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn center(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, center)
    }
    unsafe fn setCenter_(&self, center: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCenter : center)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn indexPath(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexPath)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn bounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bounds)
    }
    unsafe fn representedElementCategory(&self) -> NSCollectionElementCategory
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedElementCategory)
    }
    unsafe fn representedElementKind(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedElementKind)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewGridLayout(pub id);
impl std::ops::Deref for NSCollectionViewGridLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewGridLayout {}
impl NSCollectionViewGridLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewGridLayout").unwrap(), alloc) })
    }
}
impl INSCollectionViewLayout for NSCollectionViewGridLayout {}
impl PNSCoding for NSCollectionViewGridLayout {}
impl std::convert::TryFrom<NSCollectionViewLayout> for NSCollectionViewGridLayout {
    type Error = &'static str;
    fn try_from(parent: NSCollectionViewLayout) -> Result<NSCollectionViewGridLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewGridLayout").unwrap()) };
        if is_kind_of {
            Ok(NSCollectionViewGridLayout(parent.0))
        } else {
            Err("This NSCollectionViewLayout cannot be downcasted to NSCollectionViewGridLayout")
        }
    }
}
impl INSObject for NSCollectionViewGridLayout {}
impl PNSObject for NSCollectionViewGridLayout {}
impl INSCollectionViewGridLayout for NSCollectionViewGridLayout {}
pub trait INSCollectionViewGridLayout: Sized + std::ops::Deref {
    unsafe fn margins(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, margins)
    }
    unsafe fn setMargins_(&self, margins: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMargins : margins)
    }
    unsafe fn minimumInteritemSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumInteritemSpacing)
    }
    unsafe fn setMinimumInteritemSpacing_(&self, minimumInteritemSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumInteritemSpacing : minimumInteritemSpacing)
    }
    unsafe fn minimumLineSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumLineSpacing)
    }
    unsafe fn setMinimumLineSpacing_(&self, minimumLineSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumLineSpacing : minimumLineSpacing)
    }
    unsafe fn maximumNumberOfRows(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumNumberOfRows)
    }
    unsafe fn setMaximumNumberOfRows_(&self, maximumNumberOfRows: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumNumberOfRows : maximumNumberOfRows)
    }
    unsafe fn maximumNumberOfColumns(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumNumberOfColumns)
    }
    unsafe fn setMaximumNumberOfColumns_(&self, maximumNumberOfColumns: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumNumberOfColumns : maximumNumberOfColumns)
    }
    unsafe fn minimumItemSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumItemSize)
    }
    unsafe fn setMinimumItemSize_(&self, minimumItemSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumItemSize : minimumItemSize)
    }
    unsafe fn maximumItemSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumItemSize)
    }
    unsafe fn setMaximumItemSize_(&self, maximumItemSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumItemSize : maximumItemSize)
    }
    unsafe fn backgroundColors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColors)
    }
    unsafe fn setBackgroundColors_(&self, backgroundColors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColors : backgroundColors)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewTransitionLayout(pub id);
impl std::ops::Deref for NSCollectionViewTransitionLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewTransitionLayout {}
impl NSCollectionViewTransitionLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewTransitionLayout").unwrap(), alloc) })
    }
}
impl INSCollectionViewLayout for NSCollectionViewTransitionLayout {}
impl PNSCoding for NSCollectionViewTransitionLayout {}
impl std::convert::TryFrom<NSCollectionViewLayout> for NSCollectionViewTransitionLayout {
    type Error = &'static str;
    fn try_from(
        parent: NSCollectionViewLayout,
    ) -> Result<NSCollectionViewTransitionLayout, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewTransitionLayout").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewTransitionLayout(parent.0))
        } else {
            Err ("This NSCollectionViewLayout cannot be downcasted to NSCollectionViewTransitionLayout" ,)
        }
    }
}
impl INSObject for NSCollectionViewTransitionLayout {}
impl PNSObject for NSCollectionViewTransitionLayout {}
impl INSCollectionViewTransitionLayout for NSCollectionViewTransitionLayout {}
pub trait INSCollectionViewTransitionLayout: Sized + std::ops::Deref {
    unsafe fn initWithCurrentLayout_nextLayout_(
        &self,
        currentLayout: NSCollectionViewLayout,
        newLayout: NSCollectionViewLayout,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCurrentLayout : currentLayout, nextLayout : newLayout)
    }
    unsafe fn updateValue_forAnimatedKey_(&self, value: CGFloat, key: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateValue : value, forAnimatedKey : key)
    }
    unsafe fn valueForAnimatedKey_(&self, key: NSString) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, valueForAnimatedKey : key)
    }
    unsafe fn transitionProgress(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transitionProgress)
    }
    unsafe fn setTransitionProgress_(&self, transitionProgress: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransitionProgress : transitionProgress)
    }
    unsafe fn currentLayout(&self) -> NSCollectionViewLayout
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentLayout)
    }
    unsafe fn nextLayout(&self) -> NSCollectionViewLayout
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nextLayout)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorSampler(pub id);
impl std::ops::Deref for NSColorSampler {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorSampler {}
impl NSColorSampler {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSampler").unwrap(), alloc) })
    }
}
impl INSObject for NSColorSampler {}
impl PNSObject for NSColorSampler {}
impl std::convert::TryFrom<NSObject> for NSColorSampler {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSColorSampler, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorSampler").unwrap()) };
        if is_kind_of {
            Ok(NSColorSampler(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSColorSampler")
        }
    }
}
impl INSColorSampler for NSColorSampler {}
pub trait INSColorSampler: Sized + std::ops::Deref {
    unsafe fn showSamplerWithSelectionHandler_(&self, selectionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showSamplerWithSelectionHandler : selectionHandler)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDiffableDataSourceSnapshot(pub id);
impl std::ops::Deref for NSDiffableDataSourceSnapshot {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDiffableDataSourceSnapshot {}
impl NSDiffableDataSourceSnapshot {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDiffableDataSourceSnapshot").unwrap(), alloc) })
    }
}
impl PNSCopying for NSDiffableDataSourceSnapshot {}
impl INSObject for NSDiffableDataSourceSnapshot {}
impl PNSObject for NSDiffableDataSourceSnapshot {}
impl std::convert::TryFrom<NSObject> for NSDiffableDataSourceSnapshot {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDiffableDataSourceSnapshot, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDiffableDataSourceSnapshot").unwrap()) };
        if is_kind_of {
            Ok(NSDiffableDataSourceSnapshot(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDiffableDataSourceSnapshot")
        }
    }
}
impl<SectionIdentifierType: 'static, ItemIdentifierType: 'static>
    INSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>
    for NSDiffableDataSourceSnapshot
{
}
pub trait INSDiffableDataSourceSnapshot<SectionIdentifierType: 'static, ItemIdentifierType: 'static>:
    Sized + std::ops::Deref
{
    unsafe fn numberOfItemsInSection_(&self, sectionIdentifier: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfItemsInSection : sectionIdentifier)
    }
    unsafe fn itemIdentifiersInSectionWithIdentifier_(&self, sectionIdentifier: id) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemIdentifiersInSectionWithIdentifier : sectionIdentifier)
    }
    unsafe fn sectionIdentifierForSectionContainingItemIdentifier_(&self, itemIdentifier: id) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sectionIdentifierForSectionContainingItemIdentifier : itemIdentifier)
    }
    unsafe fn indexOfItemIdentifier_(&self, itemIdentifier: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemIdentifier : itemIdentifier)
    }
    unsafe fn indexOfSectionIdentifier_(&self, sectionIdentifier: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfSectionIdentifier : sectionIdentifier)
    }
    unsafe fn appendItemsWithIdentifiers_(&self, identifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendItemsWithIdentifiers : identifiers)
    }
    unsafe fn appendItemsWithIdentifiers_intoSectionWithIdentifier_(
        &self,
        identifiers: NSArray,
        sectionIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendItemsWithIdentifiers : identifiers, intoSectionWithIdentifier : sectionIdentifier)
    }
    unsafe fn insertItemsWithIdentifiers_beforeItemWithIdentifier_(
        &self,
        identifiers: NSArray,
        itemIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemsWithIdentifiers : identifiers, beforeItemWithIdentifier : itemIdentifier)
    }
    unsafe fn insertItemsWithIdentifiers_afterItemWithIdentifier_(
        &self,
        identifiers: NSArray,
        itemIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemsWithIdentifiers : identifiers, afterItemWithIdentifier : itemIdentifier)
    }
    unsafe fn deleteItemsWithIdentifiers_(&self, identifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteItemsWithIdentifiers : identifiers)
    }
    unsafe fn deleteAllItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deleteAllItems)
    }
    unsafe fn moveItemWithIdentifier_beforeItemWithIdentifier_(
        &self,
        fromIdentifier: id,
        toIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveItemWithIdentifier : fromIdentifier, beforeItemWithIdentifier : toIdentifier)
    }
    unsafe fn moveItemWithIdentifier_afterItemWithIdentifier_(
        &self,
        fromIdentifier: id,
        toIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveItemWithIdentifier : fromIdentifier, afterItemWithIdentifier : toIdentifier)
    }
    unsafe fn reloadItemsWithIdentifiers_(&self, identifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadItemsWithIdentifiers : identifiers)
    }
    unsafe fn appendSectionsWithIdentifiers_(&self, sectionIdentifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendSectionsWithIdentifiers : sectionIdentifiers)
    }
    unsafe fn insertSectionsWithIdentifiers_beforeSectionWithIdentifier_(
        &self,
        sectionIdentifiers: NSArray,
        toSectionIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertSectionsWithIdentifiers : sectionIdentifiers, beforeSectionWithIdentifier : toSectionIdentifier)
    }
    unsafe fn insertSectionsWithIdentifiers_afterSectionWithIdentifier_(
        &self,
        sectionIdentifiers: NSArray,
        toSectionIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertSectionsWithIdentifiers : sectionIdentifiers, afterSectionWithIdentifier : toSectionIdentifier)
    }
    unsafe fn deleteSectionsWithIdentifiers_(&self, sectionIdentifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deleteSectionsWithIdentifiers : sectionIdentifiers)
    }
    unsafe fn moveSectionWithIdentifier_beforeSectionWithIdentifier_(
        &self,
        fromSectionIdentifier: id,
        toSectionIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveSectionWithIdentifier : fromSectionIdentifier, beforeSectionWithIdentifier : toSectionIdentifier)
    }
    unsafe fn moveSectionWithIdentifier_afterSectionWithIdentifier_(
        &self,
        fromSectionIdentifier: id,
        toSectionIdentifier: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveSectionWithIdentifier : fromSectionIdentifier, afterSectionWithIdentifier : toSectionIdentifier)
    }
    unsafe fn reloadSectionsWithIdentifiers_(&self, sectionIdentifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadSectionsWithIdentifiers : sectionIdentifiers)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn numberOfSections(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfSections)
    }
    unsafe fn sectionIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sectionIdentifiers)
    }
    unsafe fn itemIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemIdentifiers)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCollectionViewDiffableDataSource(pub id);
impl std::ops::Deref for NSCollectionViewDiffableDataSource {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCollectionViewDiffableDataSource {}
impl NSCollectionViewDiffableDataSource {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewDiffableDataSource").unwrap(), alloc) })
    }
}
impl PNSCollectionViewDataSource for NSCollectionViewDiffableDataSource {}
impl INSObject for NSCollectionViewDiffableDataSource {}
impl PNSObject for NSCollectionViewDiffableDataSource {}
impl std::convert::TryFrom<NSObject> for NSCollectionViewDiffableDataSource {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCollectionViewDiffableDataSource, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCollectionViewDiffableDataSource").unwrap())
        };
        if is_kind_of {
            Ok(NSCollectionViewDiffableDataSource(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCollectionViewDiffableDataSource")
        }
    }
}
impl<SectionIdentifierType: 'static, ItemIdentifierType: 'static>
    INSCollectionViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType>
    for NSCollectionViewDiffableDataSource
{
}
pub trait INSCollectionViewDiffableDataSource<
    SectionIdentifierType: 'static,
    ItemIdentifierType: 'static,
>: Sized + std::ops::Deref
{
    unsafe fn initWithCollectionView_itemProvider_(
        &self,
        collectionView: NSCollectionView,
        itemProvider: NSCollectionViewDiffableDataSourceItemProvider,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCollectionView : collectionView, itemProvider : itemProvider)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn snapshot(&self) -> NSDiffableDataSourceSnapshot
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, snapshot)
    }
    unsafe fn applySnapshot_animatingDifferences_(
        &self,
        snapshot: NSDiffableDataSourceSnapshot,
        animatingDifferences: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applySnapshot : snapshot, animatingDifferences : animatingDifferences)
    }
    unsafe fn itemIdentifierForIndexPath_(&self, indexPath: NSIndexPath) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemIdentifierForIndexPath : indexPath)
    }
    unsafe fn indexPathForItemIdentifier_(&self, identifier: id) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexPathForItemIdentifier : identifier)
    }
    unsafe fn supplementaryViewProvider(
        &self,
    ) -> NSCollectionViewDiffableDataSourceSupplementaryViewProvider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supplementaryViewProvider)
    }
    unsafe fn setSupplementaryViewProvider_(
        &self,
        supplementaryViewProvider: NSCollectionViewDiffableDataSourceSupplementaryViewProvider,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSupplementaryViewProvider : supplementaryViewProvider)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCollectionViewDiffableDataSource").unwrap(), new)
    }
}
pub type NSHorizontalDirections = NSUInteger;
pub type NSVerticalDirections = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDockTile(pub id);
impl std::ops::Deref for NSDockTile {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDockTile {}
impl NSDockTile {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDockTile").unwrap(), alloc) })
    }
}
impl INSObject for NSDockTile {}
impl PNSObject for NSDockTile {}
impl std::convert::TryFrom<NSObject> for NSDockTile {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDockTile, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDockTile").unwrap()) };
        if is_kind_of {
            Ok(NSDockTile(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDockTile")
        }
    }
}
impl INSDockTile for NSDockTile {}
pub trait INSDockTile: Sized + std::ops::Deref {
    unsafe fn display(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, display)
    }
    unsafe fn size(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, size)
    }
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn showsApplicationBadge(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsApplicationBadge)
    }
    unsafe fn setShowsApplicationBadge_(&self, showsApplicationBadge: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsApplicationBadge : showsApplicationBadge)
    }
    unsafe fn badgeLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, badgeLabel)
    }
    unsafe fn setBadgeLabel_(&self, badgeLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBadgeLabel : badgeLabel)
    }
    unsafe fn owner(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, owner)
    }
}
pub trait PNSDockTilePlugIn: Sized + std::ops::Deref {
    unsafe fn setDockTile_(&self, dockTile: NSDockTile)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDockTile : dockTile)
    }
    unsafe fn dockMenu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dockMenu)
    }
}
pub type NSFontSymbolicTraits = u32;
pub type NSFontDescriptorSymbolicTraits = u32;
pub type NSFontDescriptorAttributeName = NSString;
pub type NSFontDescriptorTraitKey = NSString;
pub type NSFontDescriptorVariationKey = NSString;
pub type NSFontDescriptorFeatureKey = NSString;
pub type NSFontDescriptorSystemDesign = NSString;
pub type NSFontTextStyle = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFontDescriptor(pub id);
impl std::ops::Deref for NSFontDescriptor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFontDescriptor {}
impl NSFontDescriptor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontDescriptor").unwrap(), alloc) })
    }
}
impl PNSCopying for NSFontDescriptor {}
impl PNSSecureCoding for NSFontDescriptor {}
impl INSObject for NSFontDescriptor {}
impl PNSObject for NSFontDescriptor {}
impl std::convert::TryFrom<NSObject> for NSFontDescriptor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFontDescriptor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFontDescriptor").unwrap()) };
        if is_kind_of {
            Ok(NSFontDescriptor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFontDescriptor")
        }
    }
}
impl INSFontDescriptor for NSFontDescriptor {}
pub trait INSFontDescriptor: Sized + std::ops::Deref {
    unsafe fn objectForKey_(&self, attribute: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, objectForKey : attribute)
    }
    unsafe fn initWithFontAttributes_(&self, attributes: NSDictionary) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFontAttributes : attributes)
    }
    unsafe fn matchingFontDescriptorsWithMandatoryKeys_(&self, mandatoryKeys: NSSet) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, matchingFontDescriptorsWithMandatoryKeys : mandatoryKeys)
    }
    unsafe fn matchingFontDescriptorWithMandatoryKeys_(
        &self,
        mandatoryKeys: NSSet,
    ) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, matchingFontDescriptorWithMandatoryKeys : mandatoryKeys)
    }
    unsafe fn fontDescriptorByAddingAttributes_(&self, attributes: NSDictionary) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorByAddingAttributes : attributes)
    }
    unsafe fn fontDescriptorWithSymbolicTraits_(
        &self,
        symbolicTraits: NSFontDescriptorSymbolicTraits,
    ) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorWithSymbolicTraits : symbolicTraits)
    }
    unsafe fn fontDescriptorWithSize_(&self, newPointSize: CGFloat) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorWithSize : newPointSize)
    }
    unsafe fn fontDescriptorWithMatrix_(&self, matrix: NSAffineTransform) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorWithMatrix : matrix)
    }
    unsafe fn fontDescriptorWithFace_(&self, newFace: NSString) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorWithFace : newFace)
    }
    unsafe fn fontDescriptorWithFamily_(&self, newFamily: NSString) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorWithFamily : newFamily)
    }
    unsafe fn fontDescriptorWithDesign_(&self, design: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorWithDesign : design)
    }
    unsafe fn postscriptName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, postscriptName)
    }
    unsafe fn pointSize(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pointSize)
    }
    unsafe fn matrix(&self) -> NSAffineTransform
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, matrix)
    }
    unsafe fn symbolicTraits(&self) -> NSFontDescriptorSymbolicTraits
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, symbolicTraits)
    }
    unsafe fn requiresFontAssetRequest(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiresFontAssetRequest)
    }
    unsafe fn fontAttributes(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fontAttributes)
    }
    unsafe fn fontDescriptorWithFontAttributes_(attributes: NSDictionary) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontDescriptor").unwrap(), fontDescriptorWithFontAttributes : attributes)
    }
    unsafe fn fontDescriptorWithName_size_(fontName: NSString, size: CGFloat) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontDescriptor").unwrap(), fontDescriptorWithName : fontName, size : size)
    }
    unsafe fn fontDescriptorWithName_matrix_(
        fontName: NSString,
        matrix: NSAffineTransform,
    ) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontDescriptor").unwrap(), fontDescriptorWithName : fontName, matrix : matrix)
    }
}
pub type NSFontFamilyClass = u32;
impl NSFontDescriptor_NSFontDescriptor_TextStyles for NSFontDescriptor {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFont(pub id);
impl std::ops::Deref for NSFont {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFont {}
impl NSFont {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), alloc) })
    }
}
impl PNSCopying for NSFont {}
impl PNSSecureCoding for NSFont {}
impl INSObject for NSFont {}
impl PNSObject for NSFont {}
impl std::convert::TryFrom<NSObject> for NSFont {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFont, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFont").unwrap()) };
        if is_kind_of {
            Ok(NSFont(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFont")
        }
    }
}
impl INSFont for NSFont {}
pub trait INSFont: Sized + std::ops::Deref {
    unsafe fn fontWithSize_(&self, fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontWithSize : fontSize)
    }
    unsafe fn boundingRectForCGGlyph_(&self, glyph: CGGlyph) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, boundingRectForCGGlyph : glyph)
    }
    unsafe fn advancementForCGGlyph_(&self, glyph: CGGlyph) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, advancementForCGGlyph : glyph)
    }
    unsafe fn getBoundingRects_forCGGlyphs_count_(
        &self,
        bounds: NSRectArray,
        glyphs: *const CGGlyph,
        glyphCount: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getBoundingRects : bounds, forCGGlyphs : glyphs, count : glyphCount)
    }
    unsafe fn getAdvancements_forCGGlyphs_count_(
        &self,
        advancements: NSSizeArray,
        glyphs: *const CGGlyph,
        glyphCount: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getAdvancements : advancements, forCGGlyphs : glyphs, count : glyphCount)
    }
    unsafe fn set(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, set)
    }
    unsafe fn setInContext_(&self, graphicsContext: NSGraphicsContext)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInContext : graphicsContext)
    }
    unsafe fn fontName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fontName)
    }
    unsafe fn pointSize(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pointSize)
    }
    unsafe fn matrix(&self) -> *const CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, matrix)
    }
    unsafe fn familyName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, familyName)
    }
    unsafe fn displayName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayName)
    }
    unsafe fn fontDescriptor(&self) -> NSFontDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fontDescriptor)
    }
    unsafe fn textTransform(&self) -> NSAffineTransform
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textTransform)
    }
    unsafe fn numberOfGlyphs(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfGlyphs)
    }
    unsafe fn mostCompatibleStringEncoding(&self) -> NSStringEncoding
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mostCompatibleStringEncoding)
    }
    unsafe fn coveredCharacterSet(&self) -> NSCharacterSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, coveredCharacterSet)
    }
    unsafe fn boundingRectForFont(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boundingRectForFont)
    }
    unsafe fn maximumAdvancement(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumAdvancement)
    }
    unsafe fn ascender(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ascender)
    }
    unsafe fn descender(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, descender)
    }
    unsafe fn leading(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leading)
    }
    unsafe fn underlinePosition(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, underlinePosition)
    }
    unsafe fn underlineThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, underlineThickness)
    }
    unsafe fn italicAngle(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, italicAngle)
    }
    unsafe fn capHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, capHeight)
    }
    unsafe fn xHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, xHeight)
    }
    unsafe fn isFixedPitch(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFixedPitch)
    }
    unsafe fn verticalFont(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalFont)
    }
    unsafe fn isVertical(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVertical)
    }
    unsafe fn fontWithName_size_(fontName: NSString, fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), fontWithName : fontName, size : fontSize)
    }
    unsafe fn fontWithName_matrix_(fontName: NSString, fontMatrix: *const CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), fontWithName : fontName, matrix : fontMatrix)
    }
    unsafe fn fontWithDescriptor_size_(
        fontDescriptor: NSFontDescriptor,
        fontSize: CGFloat,
    ) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), fontWithDescriptor : fontDescriptor, size : fontSize)
    }
    unsafe fn fontWithDescriptor_textTransform_(
        fontDescriptor: NSFontDescriptor,
        textTransform: NSAffineTransform,
    ) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), fontWithDescriptor : fontDescriptor, textTransform : textTransform)
    }
    unsafe fn userFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), userFontOfSize : fontSize)
    }
    unsafe fn userFixedPitchFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), userFixedPitchFontOfSize : fontSize)
    }
    unsafe fn setUserFont_(font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), setUserFont : font)
    }
    unsafe fn setUserFixedPitchFont_(font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), setUserFixedPitchFont : font)
    }
    unsafe fn systemFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), systemFontOfSize : fontSize)
    }
    unsafe fn boldSystemFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), boldSystemFontOfSize : fontSize)
    }
    unsafe fn labelFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), labelFontOfSize : fontSize)
    }
    unsafe fn titleBarFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), titleBarFontOfSize : fontSize)
    }
    unsafe fn menuFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), menuFontOfSize : fontSize)
    }
    unsafe fn menuBarFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), menuBarFontOfSize : fontSize)
    }
    unsafe fn messageFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), messageFontOfSize : fontSize)
    }
    unsafe fn paletteFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), paletteFontOfSize : fontSize)
    }
    unsafe fn toolTipsFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), toolTipsFontOfSize : fontSize)
    }
    unsafe fn controlContentFontOfSize_(fontSize: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), controlContentFontOfSize : fontSize)
    }
    unsafe fn systemFontOfSize_weight_(fontSize: CGFloat, weight: NSFontWeight) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), systemFontOfSize : fontSize, weight : weight)
    }
    unsafe fn monospacedDigitSystemFontOfSize_weight_(
        fontSize: CGFloat,
        weight: NSFontWeight,
    ) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), monospacedDigitSystemFontOfSize : fontSize, weight : weight)
    }
    unsafe fn systemFontOfSize_weight_width_(
        fontSize: CGFloat,
        weight: NSFontWeight,
        width: NSFontWidth,
    ) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), systemFontOfSize : fontSize, weight : weight, width : width)
    }
    unsafe fn monospacedSystemFontOfSize_weight_(fontSize: CGFloat, weight: NSFontWeight) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), monospacedSystemFontOfSize : fontSize, weight : weight)
    }
    unsafe fn systemFontSizeForControlSize_(controlSize: NSControlSize) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), systemFontSizeForControlSize : controlSize)
    }
    unsafe fn systemFontSize() -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), systemFontSize)
    }
    unsafe fn smallSystemFontSize() -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), smallSystemFontSize)
    }
    unsafe fn labelFontSize() -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFont").unwrap(), labelFontSize)
    }
}
pub type NSGlyph = ::std::os::raw::c_uint;
pub type NSFontRenderingMode = NSUInteger;
pub type NSMultibyteGlyphPacking = NSUInteger;
impl NSFont_NSFont_Deprecated for NSFont {}
impl NSFont_NSFont_TextStyles for NSFont {}
pub type NSFontAssetRequestOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFontAssetRequest(pub id);
impl std::ops::Deref for NSFontAssetRequest {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFontAssetRequest {}
impl NSFontAssetRequest {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontAssetRequest").unwrap(), alloc) })
    }
}
impl PNSProgressReporting for NSFontAssetRequest {}
impl INSObject for NSFontAssetRequest {}
impl PNSObject for NSFontAssetRequest {}
impl std::convert::TryFrom<NSObject> for NSFontAssetRequest {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFontAssetRequest, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFontAssetRequest").unwrap()) };
        if is_kind_of {
            Ok(NSFontAssetRequest(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFontAssetRequest")
        }
    }
}
impl INSFontAssetRequest for NSFontAssetRequest {}
pub trait INSFontAssetRequest: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithFontDescriptors_options_(
        &self,
        fontDescriptors: NSArray,
        options: NSFontAssetRequestOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFontDescriptors : fontDescriptors, options : options)
    }
    unsafe fn downloadFontAssetsWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, downloadFontAssetsWithCompletionHandler : completionHandler)
    }
    unsafe fn downloadedFontDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, downloadedFontDescriptors)
    }
    unsafe fn progress(&self) -> NSProgress
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, progress)
    }
}
pub type NSFontCollectionVisibility = NSUInteger;
pub type NSFontCollectionMatchingOptionKey = NSString;
pub type NSFontCollectionName = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFontCollection(pub id);
impl std::ops::Deref for NSFontCollection {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFontCollection {}
impl NSFontCollection {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), alloc) })
    }
}
impl PNSCopying for NSFontCollection {}
impl PNSMutableCopying for NSFontCollection {}
impl PNSCoding for NSFontCollection {}
impl INSObject for NSFontCollection {}
impl PNSObject for NSFontCollection {}
impl std::convert::TryFrom<NSObject> for NSFontCollection {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFontCollection, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap()) };
        if is_kind_of {
            Ok(NSFontCollection(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFontCollection")
        }
    }
}
impl INSFontCollection for NSFontCollection {}
pub trait INSFontCollection: Sized + std::ops::Deref {
    unsafe fn matchingDescriptorsWithOptions_(&self, options: NSDictionary) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, matchingDescriptorsWithOptions : options)
    }
    unsafe fn matchingDescriptorsForFamily_(&self, family: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, matchingDescriptorsForFamily : family)
    }
    unsafe fn matchingDescriptorsForFamily_options_(
        &self,
        family: NSString,
        options: NSDictionary,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, matchingDescriptorsForFamily : family, options : options)
    }
    unsafe fn queryDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, queryDescriptors)
    }
    unsafe fn exclusionDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, exclusionDescriptors)
    }
    unsafe fn matchingDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, matchingDescriptors)
    }
    unsafe fn fontCollectionWithDescriptors_(queryDescriptors: NSArray) -> NSFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), fontCollectionWithDescriptors : queryDescriptors)
    }
    unsafe fn fontCollectionWithLocale_(locale: NSLocale) -> NSFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), fontCollectionWithLocale : locale)
    }
    unsafe fn showFontCollection_withName_visibility_error_(
        collection: NSFontCollection,
        name: NSString,
        visibility: NSFontCollectionVisibility,
        error: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), showFontCollection : collection, withName : name, visibility : visibility, error : error)
    }
    unsafe fn hideFontCollectionWithName_visibility_error_(
        name: NSString,
        visibility: NSFontCollectionVisibility,
        error: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), hideFontCollectionWithName : name, visibility : visibility, error : error)
    }
    unsafe fn renameFontCollectionWithName_visibility_toName_error_(
        oldName: NSString,
        visibility: NSFontCollectionVisibility,
        newName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), renameFontCollectionWithName : oldName, visibility : visibility, toName : newName, error : outError)
    }
    unsafe fn fontCollectionWithName_(name: NSString) -> NSFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), fontCollectionWithName : name)
    }
    unsafe fn fontCollectionWithName_visibility_(
        name: NSString,
        visibility: NSFontCollectionVisibility,
    ) -> NSFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), fontCollectionWithName : name, visibility : visibility)
    }
    unsafe fn fontCollectionWithAllAvailableDescriptors() -> NSFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), fontCollectionWithAllAvailableDescriptors)
    }
    unsafe fn allFontCollectionNames() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontCollection").unwrap(), allFontCollectionNames)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMutableFontCollection(pub id);
impl std::ops::Deref for NSMutableFontCollection {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMutableFontCollection {}
impl NSMutableFontCollection {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap(), alloc) })
    }
}
impl INSFontCollection for NSMutableFontCollection {}
impl PNSCopying for NSMutableFontCollection {}
impl PNSMutableCopying for NSMutableFontCollection {}
impl PNSCoding for NSMutableFontCollection {}
impl From<NSMutableFontCollection> for NSFontCollection {
    fn from(child: NSMutableFontCollection) -> NSFontCollection {
        NSFontCollection(child.0)
    }
}
impl std::convert::TryFrom<NSFontCollection> for NSMutableFontCollection {
    type Error = &'static str;
    fn try_from(parent: NSFontCollection) -> Result<NSMutableFontCollection, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap()) };
        if is_kind_of {
            Ok(NSMutableFontCollection(parent.0))
        } else {
            Err("This NSFontCollection cannot be downcasted to NSMutableFontCollection")
        }
    }
}
impl INSObject for NSMutableFontCollection {}
impl PNSObject for NSMutableFontCollection {}
impl INSMutableFontCollection for NSMutableFontCollection {}
pub trait INSMutableFontCollection: Sized + std::ops::Deref {
    unsafe fn addQueryForDescriptors_(&self, descriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addQueryForDescriptors : descriptors)
    }
    unsafe fn removeQueryForDescriptors_(&self, descriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeQueryForDescriptors : descriptors)
    }
    unsafe fn queryDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, queryDescriptors)
    }
    unsafe fn setQueryDescriptors_(&self, queryDescriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setQueryDescriptors : queryDescriptors)
    }
    unsafe fn exclusionDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, exclusionDescriptors)
    }
    unsafe fn setExclusionDescriptors_(&self, exclusionDescriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setExclusionDescriptors : exclusionDescriptors)
    }
    unsafe fn fontCollectionWithDescriptors_(queryDescriptors: NSArray) -> NSMutableFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap(), fontCollectionWithDescriptors : queryDescriptors)
    }
    unsafe fn fontCollectionWithLocale_(locale: NSLocale) -> NSMutableFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap(), fontCollectionWithLocale : locale)
    }
    unsafe fn fontCollectionWithName_(name: NSString) -> NSMutableFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap(), fontCollectionWithName : name)
    }
    unsafe fn fontCollectionWithName_visibility_(
        name: NSString,
        visibility: NSFontCollectionVisibility,
    ) -> NSMutableFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap(), fontCollectionWithName : name, visibility : visibility)
    }
    unsafe fn fontCollectionWithAllAvailableDescriptors() -> NSMutableFontCollection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMutableFontCollection").unwrap(), fontCollectionWithAllAvailableDescriptors)
    }
}
pub type NSFontCollectionUserInfoKey = NSString;
pub type NSFontCollectionActionTypeKey = NSString;
pub type NSFontTraitMask = NSUInteger;
pub type NSFontCollectionOptions = NSUInteger;
pub type NSFontAction = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFontManager(pub id);
impl std::ops::Deref for NSFontManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFontManager {}
impl NSFontManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontManager").unwrap(), alloc) })
    }
}
impl PNSMenuItemValidation for NSFontManager {}
impl INSObject for NSFontManager {}
impl PNSObject for NSFontManager {}
impl std::convert::TryFrom<NSObject> for NSFontManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFontManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFontManager").unwrap()) };
        if is_kind_of {
            Ok(NSFontManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFontManager")
        }
    }
}
impl INSFontManager for NSFontManager {}
pub trait INSFontManager: Sized + std::ops::Deref {
    unsafe fn setSelectedFont_isMultiple_(&self, fontObj: NSFont, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedFont : fontObj, isMultiple : flag)
    }
    unsafe fn setFontMenu_(&self, newMenu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFontMenu : newMenu)
    }
    unsafe fn fontMenu_(&self, create: BOOL) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontMenu : create)
    }
    unsafe fn fontPanel_(&self, create: BOOL) -> NSFontPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontPanel : create)
    }
    unsafe fn fontWithFamily_traits_weight_size_(
        &self,
        family: NSString,
        traits: NSFontTraitMask,
        weight: NSInteger,
        size: CGFloat,
    ) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontWithFamily : family, traits : traits, weight : weight, size : size)
    }
    unsafe fn traitsOfFont_(&self, fontObj: NSFont) -> NSFontTraitMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, traitsOfFont : fontObj)
    }
    unsafe fn weightOfFont_(&self, fontObj: NSFont) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, weightOfFont : fontObj)
    }
    unsafe fn availableMembersOfFontFamily_(&self, fam: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, availableMembersOfFontFamily : fam)
    }
    unsafe fn convertFont_(&self, fontObj: NSFont) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFont : fontObj)
    }
    unsafe fn convertFont_toSize_(&self, fontObj: NSFont, size: CGFloat) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFont : fontObj, toSize : size)
    }
    unsafe fn convertFont_toFace_(&self, fontObj: NSFont, typeface: NSString) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFont : fontObj, toFace : typeface)
    }
    unsafe fn convertFont_toFamily_(&self, fontObj: NSFont, family: NSString) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFont : fontObj, toFamily : family)
    }
    unsafe fn convertFont_toHaveTrait_(&self, fontObj: NSFont, trait_: NSFontTraitMask) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFont : fontObj, toHaveTrait : trait_)
    }
    unsafe fn convertFont_toNotHaveTrait_(&self, fontObj: NSFont, trait_: NSFontTraitMask) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFont : fontObj, toNotHaveTrait : trait_)
    }
    unsafe fn convertWeight_ofFont_(&self, upFlag: BOOL, fontObj: NSFont) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertWeight : upFlag, ofFont : fontObj)
    }
    unsafe fn sendAction(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendAction)
    }
    unsafe fn localizedNameForFamily_face_(&self, family: NSString, faceKey: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, localizedNameForFamily : family, face : faceKey)
    }
    unsafe fn setSelectedAttributes_isMultiple_(&self, attributes: NSDictionary, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedAttributes : attributes, isMultiple : flag)
    }
    unsafe fn convertAttributes_(&self, attributes: NSDictionary) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertAttributes : attributes)
    }
    unsafe fn availableFontNamesMatchingFontDescriptor_(
        &self,
        descriptor: NSFontDescriptor,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, availableFontNamesMatchingFontDescriptor : descriptor)
    }
    unsafe fn fontDescriptorsInCollection_(&self, collectionNames: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fontDescriptorsInCollection : collectionNames)
    }
    unsafe fn addCollection_options_(
        &self,
        collectionName: NSString,
        collectionOptions: NSFontCollectionOptions,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addCollection : collectionName, options : collectionOptions)
    }
    unsafe fn removeCollection_(&self, collectionName: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeCollection : collectionName)
    }
    unsafe fn addFontDescriptors_toCollection_(
        &self,
        descriptors: NSArray,
        collectionName: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addFontDescriptors : descriptors, toCollection : collectionName)
    }
    unsafe fn removeFontDescriptor_fromCollection_(
        &self,
        descriptor: NSFontDescriptor,
        collection: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeFontDescriptor : descriptor, fromCollection : collection)
    }
    unsafe fn convertFontTraits_(&self, traits: NSFontTraitMask) -> NSFontTraitMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertFontTraits : traits)
    }
    unsafe fn isMultiple(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMultiple)
    }
    unsafe fn selectedFont(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedFont)
    }
    unsafe fn availableFonts(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, availableFonts)
    }
    unsafe fn availableFontFamilies(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, availableFontFamilies)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn delegate(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn collectionNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collectionNames)
    }
    unsafe fn currentFontAction(&self) -> NSFontAction
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentFontAction)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn setFontPanelFactory_(factoryId: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontManager").unwrap(), setFontPanelFactory : factoryId)
    }
    unsafe fn setFontManagerFactory_(factoryId: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontManager").unwrap(), setFontManagerFactory : factoryId)
    }
    unsafe fn sharedFontManager() -> NSFontManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontManager").unwrap(), sharedFontManager)
    }
}
impl NSFontManager_NSFontManagerMenuActionMethods for NSFontManager {}
pub type NSWindowStyleMask = NSUInteger;
pub type NSWindowSharingType = NSUInteger;
pub type NSWindowCollectionBehavior = NSUInteger;
pub type NSWindowAnimationBehavior = NSInteger;
pub type NSWindowNumberListOptions = NSUInteger;
pub type NSWindowOcclusionState = NSUInteger;
pub type NSSelectionDirection = NSUInteger;
pub type NSWindowButton = NSUInteger;
pub type NSWindowTitleVisibility = NSInteger;
pub type NSWindowToolbarStyle = NSInteger;
pub type NSWindowUserTabbingPreference = NSInteger;
pub type NSWindowTabbingMode = NSInteger;
pub type NSTitlebarSeparatorStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWindow(pub id);
impl std::ops::Deref for NSWindow {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWindow {}
impl NSWindow {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), alloc) })
    }
}
impl PNSAnimatablePropertyContainer for NSWindow {}
impl PNSMenuItemValidation for NSWindow {}
impl PNSUserInterfaceValidations for NSWindow {}
impl PNSUserInterfaceItemIdentification for NSWindow {}
impl PNSAppearanceCustomization for NSWindow {}
impl PNSAccessibilityElement for NSWindow {}
impl PNSAccessibility for NSWindow {}
impl INSResponder for NSWindow {}
impl PNSCoding for NSWindow {}
impl std::convert::TryFrom<NSResponder> for NSWindow {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSWindow, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWindow").unwrap()) };
        if is_kind_of {
            Ok(NSWindow(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSWindow")
        }
    }
}
impl INSObject for NSWindow {}
impl PNSObject for NSWindow {}
impl INSWindow for NSWindow {}
pub trait INSWindow: Sized + std::ops::Deref {
    unsafe fn frameRectForContentRect_(&self, contentRect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameRectForContentRect : contentRect)
    }
    unsafe fn contentRectForFrameRect_(&self, frameRect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, contentRectForFrameRect : frameRect)
    }
    unsafe fn initWithContentRect_styleMask_backing_defer_(
        &self,
        contentRect: NSRect,
        style: NSWindowStyleMask,
        backingStoreType: NSBackingStoreType,
        flag: BOOL,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentRect : contentRect, styleMask : style, backing : backingStoreType, defer : flag)
    }
    unsafe fn initWithContentRect_styleMask_backing_defer_screen_(
        &self,
        contentRect: NSRect,
        style: NSWindowStyleMask,
        backingStoreType: NSBackingStoreType,
        flag: BOOL,
        screen: NSScreen,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentRect : contentRect, styleMask : style, backing : backingStoreType, defer : flag, screen : screen)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn addTitlebarAccessoryViewController_(
        &self,
        childViewController: NSTitlebarAccessoryViewController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTitlebarAccessoryViewController : childViewController)
    }
    unsafe fn insertTitlebarAccessoryViewController_atIndex_(
        &self,
        childViewController: NSTitlebarAccessoryViewController,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertTitlebarAccessoryViewController : childViewController, atIndex : index)
    }
    unsafe fn removeTitlebarAccessoryViewControllerAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTitlebarAccessoryViewControllerAtIndex : index)
    }
    unsafe fn setTitleWithRepresentedFilename_(&self, filename: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleWithRepresentedFilename : filename)
    }
    unsafe fn fieldEditor_forObject_(&self, createFlag: BOOL, object: id) -> NSText
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fieldEditor : createFlag, forObject : object)
    }
    unsafe fn endEditingFor_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endEditingFor : object)
    }
    unsafe fn constrainFrameRect_toScreen_(&self, frameRect: NSRect, screen: NSScreen) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constrainFrameRect : frameRect, toScreen : screen)
    }
    unsafe fn setFrame_display_(&self, frameRect: NSRect, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frameRect, display : flag)
    }
    unsafe fn setContentSize_(&self, size: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentSize : size)
    }
    unsafe fn setFrameOrigin_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameOrigin : point)
    }
    unsafe fn setFrameTopLeftPoint_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameTopLeftPoint : point)
    }
    unsafe fn cascadeTopLeftFromPoint_(&self, topLeftPoint: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cascadeTopLeftFromPoint : topLeftPoint)
    }
    unsafe fn animationResizeTime_(&self, newFrame: NSRect) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, animationResizeTime : newFrame)
    }
    unsafe fn setFrame_display_animate_(
        &self,
        frameRect: NSRect,
        displayFlag: BOOL,
        animateFlag: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frameRect, display : displayFlag, animate : animateFlag)
    }
    unsafe fn displayIfNeeded(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayIfNeeded)
    }
    unsafe fn display(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, display)
    }
    unsafe fn update(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, update)
    }
    unsafe fn makeFirstResponder_(&self, responder: NSResponder) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeFirstResponder : responder)
    }
    unsafe fn close(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, close)
    }
    unsafe fn miniaturize_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, miniaturize : sender)
    }
    unsafe fn deminiaturize_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deminiaturize : sender)
    }
    unsafe fn zoom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, zoom : sender)
    }
    unsafe fn tryToPerform_with_(&self, action: objc2::runtime::Sel, object: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tryToPerform : action, with : object)
    }
    unsafe fn validRequestorForSendType_returnType_(
        &self,
        sendType: NSString,
        returnType: NSString,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validRequestorForSendType : sendType, returnType : returnType)
    }
    unsafe fn setContentBorderThickness_forEdge_(&self, thickness: CGFloat, edge: NSRectEdge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentBorderThickness : thickness, forEdge : edge)
    }
    unsafe fn contentBorderThicknessForEdge_(&self, edge: NSRectEdge) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, contentBorderThicknessForEdge : edge)
    }
    unsafe fn setAutorecalculatesContentBorderThickness_forEdge_(
        &self,
        flag: BOOL,
        edge: NSRectEdge,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutorecalculatesContentBorderThickness : flag, forEdge : edge)
    }
    unsafe fn autorecalculatesContentBorderThicknessForEdge_(&self, edge: NSRectEdge) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, autorecalculatesContentBorderThicknessForEdge : edge)
    }
    unsafe fn center(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, center)
    }
    unsafe fn makeKeyAndOrderFront_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeKeyAndOrderFront : sender)
    }
    unsafe fn orderFront_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFront : sender)
    }
    unsafe fn orderBack_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderBack : sender)
    }
    unsafe fn orderOut_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderOut : sender)
    }
    unsafe fn orderWindow_relativeTo_(&self, place: NSWindowOrderingMode, otherWin: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderWindow : place, relativeTo : otherWin)
    }
    unsafe fn orderFrontRegardless(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, orderFrontRegardless)
    }
    unsafe fn makeKeyWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeKeyWindow)
    }
    unsafe fn makeMainWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeMainWindow)
    }
    unsafe fn becomeKeyWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, becomeKeyWindow)
    }
    unsafe fn resignKeyWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resignKeyWindow)
    }
    unsafe fn becomeMainWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, becomeMainWindow)
    }
    unsafe fn resignMainWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resignMainWindow)
    }
    unsafe fn convertRectToScreen_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectToScreen : rect)
    }
    unsafe fn convertRectFromScreen_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectFromScreen : rect)
    }
    unsafe fn convertPointToScreen_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointToScreen : point)
    }
    unsafe fn convertPointFromScreen_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointFromScreen : point)
    }
    unsafe fn convertRectToBacking_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectToBacking : rect)
    }
    unsafe fn convertRectFromBacking_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectFromBacking : rect)
    }
    unsafe fn convertPointToBacking_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointToBacking : point)
    }
    unsafe fn convertPointFromBacking_(&self, point: NSPoint) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertPointFromBacking : point)
    }
    unsafe fn backingAlignedRect_options_(
        &self,
        rect: NSRect,
        options: NSAlignmentOptions,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, backingAlignedRect : rect, options : options)
    }
    unsafe fn performClose_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performClose : sender)
    }
    unsafe fn performMiniaturize_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performMiniaturize : sender)
    }
    unsafe fn performZoom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performZoom : sender)
    }
    unsafe fn dataWithEPSInsideRect_(&self, rect: NSRect) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dataWithEPSInsideRect : rect)
    }
    unsafe fn dataWithPDFInsideRect_(&self, rect: NSRect) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dataWithPDFInsideRect : rect)
    }
    unsafe fn print_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, print : sender)
    }
    unsafe fn setDynamicDepthLimit_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDynamicDepthLimit : flag)
    }
    unsafe fn invalidateShadow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateShadow)
    }
    unsafe fn toggleFullScreen_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleFullScreen : sender)
    }
    unsafe fn setFrameFromString_(&self, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameFromString : string)
    }
    unsafe fn saveFrameUsingName_(&self, name: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveFrameUsingName : name)
    }
    unsafe fn setFrameUsingName_force_(&self, name: NSString, force: BOOL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameUsingName : name, force : force)
    }
    unsafe fn setFrameUsingName_(&self, name: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameUsingName : name)
    }
    unsafe fn setFrameAutosaveName_(&self, name: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameAutosaveName : name)
    }
    unsafe fn beginSheet_completionHandler_(
        &self,
        sheetWindow: NSWindow,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheet : sheetWindow, completionHandler : handler)
    }
    unsafe fn beginCriticalSheet_completionHandler_(
        &self,
        sheetWindow: NSWindow,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginCriticalSheet : sheetWindow, completionHandler : handler)
    }
    unsafe fn endSheet_(&self, sheetWindow: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endSheet : sheetWindow)
    }
    unsafe fn endSheet_returnCode_(&self, sheetWindow: NSWindow, returnCode: NSModalResponse)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endSheet : sheetWindow, returnCode : returnCode)
    }
    unsafe fn standardWindowButton_(&self, b: NSWindowButton) -> NSButton
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, standardWindowButton : b)
    }
    unsafe fn addChildWindow_ordered_(&self, childWin: NSWindow, place: NSWindowOrderingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addChildWindow : childWin, ordered : place)
    }
    unsafe fn removeChildWindow_(&self, childWin: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeChildWindow : childWin)
    }
    unsafe fn canRepresentDisplayGamut_(&self, displayGamut: NSDisplayGamut) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canRepresentDisplayGamut : displayGamut)
    }
    unsafe fn performWindowDragWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performWindowDragWithEvent : event)
    }
    unsafe fn selectNextKeyView_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectNextKeyView : sender)
    }
    unsafe fn selectPreviousKeyView_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectPreviousKeyView : sender)
    }
    unsafe fn selectKeyViewFollowingView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectKeyViewFollowingView : view)
    }
    unsafe fn selectKeyViewPrecedingView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectKeyViewPrecedingView : view)
    }
    unsafe fn disableKeyEquivalentForDefaultButtonCell(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, disableKeyEquivalentForDefaultButtonCell)
    }
    unsafe fn enableKeyEquivalentForDefaultButtonCell(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, enableKeyEquivalentForDefaultButtonCell)
    }
    unsafe fn recalculateKeyViewLoop(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recalculateKeyViewLoop)
    }
    unsafe fn toggleToolbarShown_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleToolbarShown : sender)
    }
    unsafe fn runToolbarCustomizationPalette_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runToolbarCustomizationPalette : sender)
    }
    unsafe fn selectNextTab_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectNextTab : sender)
    }
    unsafe fn selectPreviousTab_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectPreviousTab : sender)
    }
    unsafe fn moveTabToNewWindow_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveTabToNewWindow : sender)
    }
    unsafe fn mergeAllWindows_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mergeAllWindows : sender)
    }
    unsafe fn toggleTabBar_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleTabBar : sender)
    }
    unsafe fn toggleTabOverview_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleTabOverview : sender)
    }
    unsafe fn addTabbedWindow_ordered_(&self, window: NSWindow, ordered: NSWindowOrderingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTabbedWindow : window, ordered : ordered)
    }
    unsafe fn transferWindowSharingToWindow_completionHandler_(
        &self,
        window: NSWindow,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, transferWindowSharingToWindow : window, completionHandler : completionHandler)
    }
    unsafe fn requestSharingOfWindow_completionHandler_(
        &self,
        window: NSWindow,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, requestSharingOfWindow : window, completionHandler : completionHandler)
    }
    unsafe fn requestSharingOfWindowUsingPreview_title_completionHandler_(
        &self,
        image: NSImage,
        title: NSString,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, requestSharingOfWindowUsingPreview : image, title : title, completionHandler : completionHandler)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn subtitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subtitle)
    }
    unsafe fn setSubtitle_(&self, subtitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubtitle : subtitle)
    }
    unsafe fn titleVisibility(&self) -> NSWindowTitleVisibility
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleVisibility)
    }
    unsafe fn setTitleVisibility_(&self, titleVisibility: NSWindowTitleVisibility)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleVisibility : titleVisibility)
    }
    unsafe fn titlebarAppearsTransparent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titlebarAppearsTransparent)
    }
    unsafe fn setTitlebarAppearsTransparent_(&self, titlebarAppearsTransparent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitlebarAppearsTransparent : titlebarAppearsTransparent)
    }
    unsafe fn toolbarStyle(&self) -> NSWindowToolbarStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolbarStyle)
    }
    unsafe fn setToolbarStyle_(&self, toolbarStyle: NSWindowToolbarStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolbarStyle : toolbarStyle)
    }
    unsafe fn contentLayoutRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentLayoutRect)
    }
    unsafe fn contentLayoutGuide(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentLayoutGuide)
    }
    unsafe fn titlebarAccessoryViewControllers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titlebarAccessoryViewControllers)
    }
    unsafe fn setTitlebarAccessoryViewControllers_(&self, titlebarAccessoryViewControllers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitlebarAccessoryViewControllers : titlebarAccessoryViewControllers)
    }
    unsafe fn representedURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedURL)
    }
    unsafe fn setRepresentedURL_(&self, representedURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRepresentedURL : representedURL)
    }
    unsafe fn representedFilename(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedFilename)
    }
    unsafe fn setRepresentedFilename_(&self, representedFilename: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRepresentedFilename : representedFilename)
    }
    unsafe fn isExcludedFromWindowsMenu(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isExcludedFromWindowsMenu)
    }
    unsafe fn setExcludedFromWindowsMenu_(&self, excludedFromWindowsMenu: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setExcludedFromWindowsMenu : excludedFromWindowsMenu)
    }
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn windowNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowNumber)
    }
    unsafe fn styleMask(&self) -> NSWindowStyleMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, styleMask)
    }
    unsafe fn setStyleMask_(&self, styleMask: NSWindowStyleMask)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStyleMask : styleMask)
    }
    unsafe fn cascadingReferenceFrame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cascadingReferenceFrame)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn inLiveResize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, inLiveResize)
    }
    unsafe fn resizeIncrements(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resizeIncrements)
    }
    unsafe fn setResizeIncrements_(&self, resizeIncrements: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResizeIncrements : resizeIncrements)
    }
    unsafe fn aspectRatio(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, aspectRatio)
    }
    unsafe fn setAspectRatio_(&self, aspectRatio: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAspectRatio : aspectRatio)
    }
    unsafe fn contentResizeIncrements(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentResizeIncrements)
    }
    unsafe fn setContentResizeIncrements_(&self, contentResizeIncrements: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentResizeIncrements : contentResizeIncrements)
    }
    unsafe fn contentAspectRatio(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentAspectRatio)
    }
    unsafe fn setContentAspectRatio_(&self, contentAspectRatio: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentAspectRatio : contentAspectRatio)
    }
    unsafe fn viewsNeedDisplay(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewsNeedDisplay)
    }
    unsafe fn setViewsNeedDisplay_(&self, viewsNeedDisplay: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setViewsNeedDisplay : viewsNeedDisplay)
    }
    unsafe fn preservesContentDuringLiveResize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preservesContentDuringLiveResize)
    }
    unsafe fn setPreservesContentDuringLiveResize_(&self, preservesContentDuringLiveResize: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreservesContentDuringLiveResize : preservesContentDuringLiveResize)
    }
    unsafe fn firstResponder(&self) -> NSResponder
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstResponder)
    }
    unsafe fn resizeFlags(&self) -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resizeFlags)
    }
    unsafe fn isReleasedWhenClosed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isReleasedWhenClosed)
    }
    unsafe fn setReleasedWhenClosed_(&self, releasedWhenClosed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReleasedWhenClosed : releasedWhenClosed)
    }
    unsafe fn isZoomed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isZoomed)
    }
    unsafe fn isMiniaturized(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMiniaturized)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn isMovable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMovable)
    }
    unsafe fn setMovable_(&self, movable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMovable : movable)
    }
    unsafe fn isMovableByWindowBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMovableByWindowBackground)
    }
    unsafe fn setMovableByWindowBackground_(&self, movableByWindowBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMovableByWindowBackground : movableByWindowBackground)
    }
    unsafe fn hidesOnDeactivate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hidesOnDeactivate)
    }
    unsafe fn setHidesOnDeactivate_(&self, hidesOnDeactivate: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidesOnDeactivate : hidesOnDeactivate)
    }
    unsafe fn canHide(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canHide)
    }
    unsafe fn setCanHide_(&self, canHide: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanHide : canHide)
    }
    unsafe fn miniwindowImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, miniwindowImage)
    }
    unsafe fn setMiniwindowImage_(&self, miniwindowImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMiniwindowImage : miniwindowImage)
    }
    unsafe fn miniwindowTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, miniwindowTitle)
    }
    unsafe fn setMiniwindowTitle_(&self, miniwindowTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMiniwindowTitle : miniwindowTitle)
    }
    unsafe fn dockTile(&self) -> NSDockTile
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dockTile)
    }
    unsafe fn isDocumentEdited(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDocumentEdited)
    }
    unsafe fn setDocumentEdited_(&self, documentEdited: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocumentEdited : documentEdited)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
    unsafe fn isKeyWindow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isKeyWindow)
    }
    unsafe fn isMainWindow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMainWindow)
    }
    unsafe fn canBecomeKeyWindow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canBecomeKeyWindow)
    }
    unsafe fn canBecomeMainWindow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canBecomeMainWindow)
    }
    unsafe fn worksWhenModal(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, worksWhenModal)
    }
    unsafe fn preventsApplicationTerminationWhenModal(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preventsApplicationTerminationWhenModal)
    }
    unsafe fn setPreventsApplicationTerminationWhenModal_(
        &self,
        preventsApplicationTerminationWhenModal: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreventsApplicationTerminationWhenModal : preventsApplicationTerminationWhenModal)
    }
    unsafe fn backingScaleFactor(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backingScaleFactor)
    }
    unsafe fn allowsToolTipsWhenApplicationIsInactive(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsToolTipsWhenApplicationIsInactive)
    }
    unsafe fn setAllowsToolTipsWhenApplicationIsInactive_(
        &self,
        allowsToolTipsWhenApplicationIsInactive: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsToolTipsWhenApplicationIsInactive : allowsToolTipsWhenApplicationIsInactive)
    }
    unsafe fn backingType(&self) -> NSBackingStoreType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backingType)
    }
    unsafe fn setBackingType_(&self, backingType: NSBackingStoreType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackingType : backingType)
    }
    unsafe fn level(&self) -> NSWindowLevel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, level)
    }
    unsafe fn setLevel_(&self, level: NSWindowLevel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLevel : level)
    }
    unsafe fn depthLimit(&self) -> NSWindowDepth
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, depthLimit)
    }
    unsafe fn setDepthLimit_(&self, depthLimit: NSWindowDepth)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDepthLimit : depthLimit)
    }
    unsafe fn hasDynamicDepthLimit(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasDynamicDepthLimit)
    }
    unsafe fn screen(&self) -> NSScreen
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, screen)
    }
    unsafe fn deepestScreen(&self) -> NSScreen
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deepestScreen)
    }
    unsafe fn hasShadow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasShadow)
    }
    unsafe fn setHasShadow_(&self, hasShadow: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasShadow : hasShadow)
    }
    unsafe fn alphaValue(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alphaValue)
    }
    unsafe fn setAlphaValue_(&self, alphaValue: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlphaValue : alphaValue)
    }
    unsafe fn isOpaque(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpaque)
    }
    unsafe fn setOpaque_(&self, opaque: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOpaque : opaque)
    }
    unsafe fn sharingType(&self) -> NSWindowSharingType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sharingType)
    }
    unsafe fn setSharingType_(&self, sharingType: NSWindowSharingType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSharingType : sharingType)
    }
    unsafe fn allowsConcurrentViewDrawing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsConcurrentViewDrawing)
    }
    unsafe fn setAllowsConcurrentViewDrawing_(&self, allowsConcurrentViewDrawing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsConcurrentViewDrawing : allowsConcurrentViewDrawing)
    }
    unsafe fn displaysWhenScreenProfileChanges(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displaysWhenScreenProfileChanges)
    }
    unsafe fn setDisplaysWhenScreenProfileChanges_(&self, displaysWhenScreenProfileChanges: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplaysWhenScreenProfileChanges : displaysWhenScreenProfileChanges)
    }
    unsafe fn canBecomeVisibleWithoutLogin(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canBecomeVisibleWithoutLogin)
    }
    unsafe fn setCanBecomeVisibleWithoutLogin_(&self, canBecomeVisibleWithoutLogin: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanBecomeVisibleWithoutLogin : canBecomeVisibleWithoutLogin)
    }
    unsafe fn collectionBehavior(&self) -> NSWindowCollectionBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collectionBehavior)
    }
    unsafe fn setCollectionBehavior_(&self, collectionBehavior: NSWindowCollectionBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollectionBehavior : collectionBehavior)
    }
    unsafe fn animationBehavior(&self) -> NSWindowAnimationBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animationBehavior)
    }
    unsafe fn setAnimationBehavior_(&self, animationBehavior: NSWindowAnimationBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimationBehavior : animationBehavior)
    }
    unsafe fn isOnActiveSpace(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOnActiveSpace)
    }
    unsafe fn stringWithSavedFrame(&self) -> NSWindowPersistableFrameDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stringWithSavedFrame)
    }
    unsafe fn frameAutosaveName(&self) -> NSWindowFrameAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frameAutosaveName)
    }
    unsafe fn minSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minSize)
    }
    unsafe fn setMinSize_(&self, minSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinSize : minSize)
    }
    unsafe fn maxSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxSize)
    }
    unsafe fn setMaxSize_(&self, maxSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxSize : maxSize)
    }
    unsafe fn contentMinSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentMinSize)
    }
    unsafe fn setContentMinSize_(&self, contentMinSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentMinSize : contentMinSize)
    }
    unsafe fn contentMaxSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentMaxSize)
    }
    unsafe fn setContentMaxSize_(&self, contentMaxSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentMaxSize : contentMaxSize)
    }
    unsafe fn minFullScreenContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minFullScreenContentSize)
    }
    unsafe fn setMinFullScreenContentSize_(&self, minFullScreenContentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinFullScreenContentSize : minFullScreenContentSize)
    }
    unsafe fn maxFullScreenContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxFullScreenContentSize)
    }
    unsafe fn setMaxFullScreenContentSize_(&self, maxFullScreenContentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxFullScreenContentSize : maxFullScreenContentSize)
    }
    unsafe fn deviceDescription(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deviceDescription)
    }
    unsafe fn windowController(&self) -> NSWindowController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowController)
    }
    unsafe fn setWindowController_(&self, windowController: NSWindowController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWindowController : windowController)
    }
    unsafe fn sheets(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sheets)
    }
    unsafe fn attachedSheet(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attachedSheet)
    }
    unsafe fn isSheet(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSheet)
    }
    unsafe fn sheetParent(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sheetParent)
    }
    unsafe fn childWindows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, childWindows)
    }
    unsafe fn parentWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parentWindow)
    }
    unsafe fn setParentWindow_(&self, parentWindow: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setParentWindow : parentWindow)
    }
    unsafe fn appearanceSource(&self) -> NSObject
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, appearanceSource)
    }
    unsafe fn setAppearanceSource_(&self, appearanceSource: NSObject)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAppearanceSource : appearanceSource)
    }
    unsafe fn colorSpace(&self) -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpace)
    }
    unsafe fn setColorSpace_(&self, colorSpace: NSColorSpace)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColorSpace : colorSpace)
    }
    unsafe fn occlusionState(&self) -> NSWindowOcclusionState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, occlusionState)
    }
    unsafe fn titlebarSeparatorStyle(&self) -> NSTitlebarSeparatorStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titlebarSeparatorStyle)
    }
    unsafe fn setTitlebarSeparatorStyle_(&self, titlebarSeparatorStyle: NSTitlebarSeparatorStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitlebarSeparatorStyle : titlebarSeparatorStyle)
    }
    unsafe fn contentViewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentViewController)
    }
    unsafe fn setContentViewController_(&self, contentViewController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentViewController : contentViewController)
    }
    unsafe fn initialFirstResponder(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, initialFirstResponder)
    }
    unsafe fn setInitialFirstResponder_(&self, initialFirstResponder: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInitialFirstResponder : initialFirstResponder)
    }
    unsafe fn keyViewSelectionDirection(&self) -> NSSelectionDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyViewSelectionDirection)
    }
    unsafe fn defaultButtonCell(&self) -> NSButtonCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultButtonCell)
    }
    unsafe fn setDefaultButtonCell_(&self, defaultButtonCell: NSButtonCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultButtonCell : defaultButtonCell)
    }
    unsafe fn autorecalculatesKeyViewLoop(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autorecalculatesKeyViewLoop)
    }
    unsafe fn setAutorecalculatesKeyViewLoop_(&self, autorecalculatesKeyViewLoop: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutorecalculatesKeyViewLoop : autorecalculatesKeyViewLoop)
    }
    unsafe fn toolbar(&self) -> NSToolbar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolbar)
    }
    unsafe fn setToolbar_(&self, toolbar: NSToolbar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolbar : toolbar)
    }
    unsafe fn showsToolbarButton(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsToolbarButton)
    }
    unsafe fn setShowsToolbarButton_(&self, showsToolbarButton: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsToolbarButton : showsToolbarButton)
    }
    unsafe fn tabbingMode(&self) -> NSWindowTabbingMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabbingMode)
    }
    unsafe fn setTabbingMode_(&self, tabbingMode: NSWindowTabbingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabbingMode : tabbingMode)
    }
    unsafe fn tabbingIdentifier(&self) -> NSWindowTabbingIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabbingIdentifier)
    }
    unsafe fn setTabbingIdentifier_(&self, tabbingIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabbingIdentifier : tabbingIdentifier)
    }
    unsafe fn tabbedWindows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabbedWindows)
    }
    unsafe fn tab(&self) -> NSWindowTab
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tab)
    }
    unsafe fn tabGroup(&self) -> NSWindowTabGroup
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabGroup)
    }
    unsafe fn hasActiveWindowSharingSession(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasActiveWindowSharingSession)
    }
    unsafe fn windowTitlebarLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowTitlebarLayoutDirection)
    }
    unsafe fn frameRectForContentRect_styleMask_(cRect: NSRect, style: NSWindowStyleMask) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), frameRectForContentRect : cRect, styleMask : style)
    }
    unsafe fn contentRectForFrameRect_styleMask_(fRect: NSRect, style: NSWindowStyleMask) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), contentRectForFrameRect : fRect, styleMask : style)
    }
    unsafe fn minFrameWidthWithTitle_styleMask_(
        title: NSString,
        style: NSWindowStyleMask,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), minFrameWidthWithTitle : title, styleMask : style)
    }
    unsafe fn removeFrameUsingName_(name: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), removeFrameUsingName : name)
    }
    unsafe fn standardWindowButton_forStyleMask_(
        b: NSWindowButton,
        styleMask: NSWindowStyleMask,
    ) -> NSButton
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), standardWindowButton : b, forStyleMask : styleMask)
    }
    unsafe fn windowNumbersWithOptions_(options: NSWindowNumberListOptions) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), windowNumbersWithOptions : options)
    }
    unsafe fn windowNumberAtPoint_belowWindowWithWindowNumber_(
        point: NSPoint,
        windowNumber: NSInteger,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), windowNumberAtPoint : point, belowWindowWithWindowNumber : windowNumber)
    }
    unsafe fn windowWithContentViewController_(
        contentViewController: NSViewController,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), windowWithContentViewController : contentViewController)
    }
    unsafe fn defaultDepthLimit() -> NSWindowDepth
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), defaultDepthLimit)
    }
    unsafe fn allowsAutomaticWindowTabbing() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), allowsAutomaticWindowTabbing)
    }
    unsafe fn setAllowsAutomaticWindowTabbing_(allowsAutomaticWindowTabbing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), setAllowsAutomaticWindowTabbing : allowsAutomaticWindowTabbing)
    }
    unsafe fn userTabbingPreference() -> NSWindowUserTabbingPreference
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindow").unwrap(), userTabbingPreference)
    }
}
impl NSWindow_NSEvent for NSWindow {}
impl NSWindow_NSCursorRect for NSWindow {}
impl NSWindow_NSDrag for NSWindow {}
impl NSWindow_NSDisplayLink for NSWindow {}
pub trait PNSWindowDelegate: Sized + std::ops::Deref {
    unsafe fn windowShouldClose_(&self, sender: NSWindow) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowShouldClose : sender)
    }
    unsafe fn windowWillReturnFieldEditor_toObject_(&self, sender: NSWindow, client: id) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillReturnFieldEditor : sender, toObject : client)
    }
    unsafe fn windowWillResize_toSize_(&self, sender: NSWindow, frameSize: NSSize) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillResize : sender, toSize : frameSize)
    }
    unsafe fn windowWillUseStandardFrame_defaultFrame_(
        &self,
        window: NSWindow,
        newFrame: NSRect,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillUseStandardFrame : window, defaultFrame : newFrame)
    }
    unsafe fn windowShouldZoom_toFrame_(&self, window: NSWindow, newFrame: NSRect) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowShouldZoom : window, toFrame : newFrame)
    }
    unsafe fn windowWillReturnUndoManager_(&self, window: NSWindow) -> NSUndoManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillReturnUndoManager : window)
    }
    unsafe fn window_willPositionSheet_usingRect_(
        &self,
        window: NSWindow,
        sheet: NSWindow,
        rect: NSRect,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, willPositionSheet : sheet, usingRect : rect)
    }
    unsafe fn window_shouldPopUpDocumentPathMenu_(&self, window: NSWindow, menu: NSMenu) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, shouldPopUpDocumentPathMenu : menu)
    }
    unsafe fn window_shouldDragDocumentWithEvent_from_withPasteboard_(
        &self,
        window: NSWindow,
        event: NSEvent,
        dragImageLocation: NSPoint,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, shouldDragDocumentWithEvent : event, from : dragImageLocation, withPasteboard : pasteboard)
    }
    unsafe fn window_willUseFullScreenContentSize_(
        &self,
        window: NSWindow,
        proposedSize: NSSize,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, willUseFullScreenContentSize : proposedSize)
    }
    unsafe fn window_willUseFullScreenPresentationOptions_(
        &self,
        window: NSWindow,
        proposedOptions: NSApplicationPresentationOptions,
    ) -> NSApplicationPresentationOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, willUseFullScreenPresentationOptions : proposedOptions)
    }
    unsafe fn customWindowsToEnterFullScreenForWindow_(&self, window: NSWindow) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, customWindowsToEnterFullScreenForWindow : window)
    }
    unsafe fn window_startCustomAnimationToEnterFullScreenWithDuration_(
        &self,
        window: NSWindow,
        duration: NSTimeInterval,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, startCustomAnimationToEnterFullScreenWithDuration : duration)
    }
    unsafe fn windowDidFailToEnterFullScreen_(&self, window: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidFailToEnterFullScreen : window)
    }
    unsafe fn customWindowsToExitFullScreenForWindow_(&self, window: NSWindow) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, customWindowsToExitFullScreenForWindow : window)
    }
    unsafe fn window_startCustomAnimationToExitFullScreenWithDuration_(
        &self,
        window: NSWindow,
        duration: NSTimeInterval,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, startCustomAnimationToExitFullScreenWithDuration : duration)
    }
    unsafe fn customWindowsToEnterFullScreenForWindow_onScreen_(
        &self,
        window: NSWindow,
        screen: NSScreen,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, customWindowsToEnterFullScreenForWindow : window, onScreen : screen)
    }
    unsafe fn window_startCustomAnimationToEnterFullScreenOnScreen_withDuration_(
        &self,
        window: NSWindow,
        screen: NSScreen,
        duration: NSTimeInterval,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, startCustomAnimationToEnterFullScreenOnScreen : screen, withDuration : duration)
    }
    unsafe fn windowDidFailToExitFullScreen_(&self, window: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidFailToExitFullScreen : window)
    }
    unsafe fn window_willResizeForVersionBrowserWithMaxPreferredSize_maxAllowedSize_(
        &self,
        window: NSWindow,
        maxPreferredFrameSize: NSSize,
        maxAllowedFrameSize: NSSize,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, willResizeForVersionBrowserWithMaxPreferredSize : maxPreferredFrameSize, maxAllowedSize : maxAllowedFrameSize)
    }
    unsafe fn window_willEncodeRestorableState_(&self, window: NSWindow, state: NSCoder)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, willEncodeRestorableState : state)
    }
    unsafe fn window_didDecodeRestorableState_(&self, window: NSWindow, state: NSCoder)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, window : window, didDecodeRestorableState : state)
    }
    unsafe fn previewRepresentableActivityItemsForWindow_(&self, window: NSWindow) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, previewRepresentableActivityItemsForWindow : window)
    }
    unsafe fn windowForSharingRequestFromWindow_(&self, window: NSWindow) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowForSharingRequestFromWindow : window)
    }
    unsafe fn windowDidResize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidResize : notification)
    }
    unsafe fn windowDidExpose_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidExpose : notification)
    }
    unsafe fn windowWillMove_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillMove : notification)
    }
    unsafe fn windowDidMove_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidMove : notification)
    }
    unsafe fn windowDidBecomeKey_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidBecomeKey : notification)
    }
    unsafe fn windowDidResignKey_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidResignKey : notification)
    }
    unsafe fn windowDidBecomeMain_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidBecomeMain : notification)
    }
    unsafe fn windowDidResignMain_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidResignMain : notification)
    }
    unsafe fn windowWillClose_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillClose : notification)
    }
    unsafe fn windowWillMiniaturize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillMiniaturize : notification)
    }
    unsafe fn windowDidMiniaturize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidMiniaturize : notification)
    }
    unsafe fn windowDidDeminiaturize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidDeminiaturize : notification)
    }
    unsafe fn windowDidUpdate_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidUpdate : notification)
    }
    unsafe fn windowDidChangeScreen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidChangeScreen : notification)
    }
    unsafe fn windowDidChangeScreenProfile_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidChangeScreenProfile : notification)
    }
    unsafe fn windowDidChangeBackingProperties_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidChangeBackingProperties : notification)
    }
    unsafe fn windowWillBeginSheet_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillBeginSheet : notification)
    }
    unsafe fn windowDidEndSheet_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidEndSheet : notification)
    }
    unsafe fn windowWillStartLiveResize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillStartLiveResize : notification)
    }
    unsafe fn windowDidEndLiveResize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidEndLiveResize : notification)
    }
    unsafe fn windowWillEnterFullScreen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillEnterFullScreen : notification)
    }
    unsafe fn windowDidEnterFullScreen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidEnterFullScreen : notification)
    }
    unsafe fn windowWillExitFullScreen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillExitFullScreen : notification)
    }
    unsafe fn windowDidExitFullScreen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidExitFullScreen : notification)
    }
    unsafe fn windowWillEnterVersionBrowser_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillEnterVersionBrowser : notification)
    }
    unsafe fn windowDidEnterVersionBrowser_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidEnterVersionBrowser : notification)
    }
    unsafe fn windowWillExitVersionBrowser_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowWillExitVersionBrowser : notification)
    }
    unsafe fn windowDidExitVersionBrowser_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidExitVersionBrowser : notification)
    }
    unsafe fn windowDidChangeOcclusionState_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowDidChangeOcclusionState : notification)
    }
}
impl NSWindow_NSDeprecated for NSWindow {}
pub type NSWindowBackingLocation = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPanel(pub id);
impl std::ops::Deref for NSPanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPanel {}
impl NSPanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPanel").unwrap(), alloc) })
    }
}
impl INSWindow for NSPanel {}
impl PNSAnimatablePropertyContainer for NSPanel {}
impl PNSMenuItemValidation for NSPanel {}
impl PNSUserInterfaceValidations for NSPanel {}
impl PNSUserInterfaceItemIdentification for NSPanel {}
impl PNSAppearanceCustomization for NSPanel {}
impl PNSAccessibilityElement for NSPanel {}
impl PNSAccessibility for NSPanel {}
impl From<NSPanel> for NSWindow {
    fn from(child: NSPanel) -> NSWindow {
        NSWindow(child.0)
    }
}
impl std::convert::TryFrom<NSWindow> for NSPanel {
    type Error = &'static str;
    fn try_from(parent: NSWindow) -> Result<NSPanel, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPanel").unwrap()) };
        if is_kind_of {
            Ok(NSPanel(parent.0))
        } else {
            Err("This NSWindow cannot be downcasted to NSPanel")
        }
    }
}
impl INSResponder for NSPanel {}
impl PNSCoding for NSPanel {}
impl INSObject for NSPanel {}
impl PNSObject for NSPanel {}
impl INSPanel for NSPanel {}
pub trait INSPanel: Sized + std::ops::Deref {
    unsafe fn isFloatingPanel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFloatingPanel)
    }
    unsafe fn setFloatingPanel_(&self, floatingPanel: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFloatingPanel : floatingPanel)
    }
    unsafe fn becomesKeyOnlyIfNeeded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, becomesKeyOnlyIfNeeded)
    }
    unsafe fn setBecomesKeyOnlyIfNeeded_(&self, becomesKeyOnlyIfNeeded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBecomesKeyOnlyIfNeeded : becomesKeyOnlyIfNeeded)
    }
    unsafe fn worksWhenModal(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, worksWhenModal)
    }
    unsafe fn setWorksWhenModal_(&self, worksWhenModal: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWorksWhenModal : worksWhenModal)
    }
}
pub type NSFontPanelModeMask = NSUInteger;
pub trait PNSFontChanging: Sized + std::ops::Deref {
    unsafe fn changeFont_(&self, sender: NSFontManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeFont : sender)
    }
    unsafe fn validModesForFontPanel_(&self, fontPanel: NSFontPanel) -> NSFontPanelModeMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validModesForFontPanel : fontPanel)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFontPanel(pub id);
impl std::ops::Deref for NSFontPanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFontPanel {}
impl NSFontPanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontPanel").unwrap(), alloc) })
    }
}
impl INSPanel for NSFontPanel {}
impl From<NSFontPanel> for NSPanel {
    fn from(child: NSFontPanel) -> NSPanel {
        NSPanel(child.0)
    }
}
impl std::convert::TryFrom<NSPanel> for NSFontPanel {
    type Error = &'static str;
    fn try_from(parent: NSPanel) -> Result<NSFontPanel, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFontPanel").unwrap()) };
        if is_kind_of {
            Ok(NSFontPanel(parent.0))
        } else {
            Err("This NSPanel cannot be downcasted to NSFontPanel")
        }
    }
}
impl INSWindow for NSFontPanel {}
impl PNSAnimatablePropertyContainer for NSFontPanel {}
impl PNSMenuItemValidation for NSFontPanel {}
impl PNSUserInterfaceValidations for NSFontPanel {}
impl PNSUserInterfaceItemIdentification for NSFontPanel {}
impl PNSAppearanceCustomization for NSFontPanel {}
impl PNSAccessibilityElement for NSFontPanel {}
impl PNSAccessibility for NSFontPanel {}
impl INSResponder for NSFontPanel {}
impl PNSCoding for NSFontPanel {}
impl INSObject for NSFontPanel {}
impl PNSObject for NSFontPanel {}
impl INSFontPanel for NSFontPanel {}
pub trait INSFontPanel: Sized + std::ops::Deref {
    unsafe fn setPanelFont_isMultiple_(&self, fontObj: NSFont, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPanelFont : fontObj, isMultiple : flag)
    }
    unsafe fn panelConvertFont_(&self, fontObj: NSFont) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panelConvertFont : fontObj)
    }
    unsafe fn reloadDefaultFontFamilies(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadDefaultFontFamilies)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
    unsafe fn worksWhenModal(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, worksWhenModal)
    }
    unsafe fn setWorksWhenModal_(&self, worksWhenModal: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWorksWhenModal : worksWhenModal)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn sharedFontPanel() -> NSFontPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontPanel").unwrap(), sharedFontPanel)
    }
    unsafe fn sharedFontPanelExists() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFontPanel").unwrap(), sharedFontPanelExists)
    }
}
pub type NSMatrixMode = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMatrix(pub id);
impl std::ops::Deref for NSMatrix {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMatrix {}
impl NSMatrix {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMatrix").unwrap(), alloc) })
    }
}
impl PNSUserInterfaceValidations for NSMatrix {}
impl PNSViewToolTipOwner for NSMatrix {}
impl INSControl for NSMatrix {}
impl std::convert::TryFrom<NSControl> for NSMatrix {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSMatrix, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMatrix").unwrap()) };
        if is_kind_of {
            Ok(NSMatrix(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSMatrix")
        }
    }
}
impl INSView for NSMatrix {}
impl PNSAnimatablePropertyContainer for NSMatrix {}
impl PNSUserInterfaceItemIdentification for NSMatrix {}
impl PNSDraggingDestination for NSMatrix {}
impl PNSAppearanceCustomization for NSMatrix {}
impl PNSAccessibilityElement for NSMatrix {}
impl PNSAccessibility for NSMatrix {}
impl INSResponder for NSMatrix {}
impl PNSCoding for NSMatrix {}
impl INSObject for NSMatrix {}
impl PNSObject for NSMatrix {}
impl INSMatrix for NSMatrix {}
pub trait INSMatrix: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithFrame_mode_prototype_numberOfRows_numberOfColumns_(
        &self,
        frameRect: NSRect,
        mode: NSMatrixMode,
        cell: NSCell,
        rowsHigh: NSInteger,
        colsWide: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect, mode : mode, prototype : cell, numberOfRows : rowsHigh, numberOfColumns : colsWide)
    }
    unsafe fn initWithFrame_mode_cellClass_numberOfRows_numberOfColumns_(
        &self,
        frameRect: NSRect,
        mode: NSMatrixMode,
        factoryId: Class,
        rowsHigh: NSInteger,
        colsWide: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect, mode : mode, cellClass : factoryId, numberOfRows : rowsHigh, numberOfColumns : colsWide)
    }
    unsafe fn makeCellAtRow_column_(&self, row: NSInteger, col: NSInteger) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeCellAtRow : row, column : col)
    }
    unsafe fn sendAction_to_forAllCells_(
        &self,
        selector: objc2::runtime::Sel,
        object: id,
        flag: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sendAction : selector, to : object, forAllCells : flag)
    }
    unsafe fn sortUsingSelector_(&self, comparator: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sortUsingSelector : comparator)
    }
    unsafe fn sortUsingFunction_context_(
        &self,
        compare: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: id,
                arg2: id,
                arg3: *mut ::std::os::raw::c_void,
            ) -> NSInteger,
        >,
        context: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sortUsingFunction : compare, context : context)
    }
    unsafe fn setSelectionFrom_to_anchor_highlight_(
        &self,
        startPos: NSInteger,
        endPos: NSInteger,
        anchorPos: NSInteger,
        lit: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionFrom : startPos, to : endPos, anchor : anchorPos, highlight : lit)
    }
    unsafe fn deselectSelectedCell(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deselectSelectedCell)
    }
    unsafe fn deselectAllCells(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deselectAllCells)
    }
    unsafe fn selectCellAtRow_column_(&self, row: NSInteger, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectCellAtRow : row, column : col)
    }
    unsafe fn selectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAll : sender)
    }
    unsafe fn selectCellWithTag_(&self, tag: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectCellWithTag : tag)
    }
    unsafe fn setScrollable_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollable : flag)
    }
    unsafe fn setState_atRow_column_(&self, value: NSInteger, row: NSInteger, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setState : value, atRow : row, column : col)
    }
    unsafe fn getNumberOfRows_columns_(&self, rowCount: *mut NSInteger, colCount: *mut NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getNumberOfRows : rowCount, columns : colCount)
    }
    unsafe fn cellAtRow_column_(&self, row: NSInteger, col: NSInteger) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellAtRow : row, column : col)
    }
    unsafe fn cellFrameAtRow_column_(&self, row: NSInteger, col: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellFrameAtRow : row, column : col)
    }
    unsafe fn getRow_column_ofCell_(
        &self,
        row: *mut NSInteger,
        col: *mut NSInteger,
        cell: NSCell,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRow : row, column : col, ofCell : cell)
    }
    unsafe fn getRow_column_forPoint_(
        &self,
        row: *mut NSInteger,
        col: *mut NSInteger,
        point: NSPoint,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRow : row, column : col, forPoint : point)
    }
    unsafe fn renewRows_columns_(&self, newRows: NSInteger, newCols: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, renewRows : newRows, columns : newCols)
    }
    unsafe fn putCell_atRow_column_(&self, newCell: NSCell, row: NSInteger, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, putCell : newCell, atRow : row, column : col)
    }
    unsafe fn addRow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, addRow)
    }
    unsafe fn addRowWithCells_(&self, newCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addRowWithCells : newCells)
    }
    unsafe fn insertRow_(&self, row: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertRow : row)
    }
    unsafe fn insertRow_withCells_(&self, row: NSInteger, newCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertRow : row, withCells : newCells)
    }
    unsafe fn removeRow_(&self, row: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRow : row)
    }
    unsafe fn addColumn(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, addColumn)
    }
    unsafe fn addColumnWithCells_(&self, newCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addColumnWithCells : newCells)
    }
    unsafe fn insertColumn_(&self, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertColumn : column)
    }
    unsafe fn insertColumn_withCells_(&self, column: NSInteger, newCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertColumn : column, withCells : newCells)
    }
    unsafe fn removeColumn_(&self, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeColumn : col)
    }
    unsafe fn cellWithTag_(&self, tag: NSInteger) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellWithTag : tag)
    }
    unsafe fn sizeToCells(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToCells)
    }
    unsafe fn setValidateSize_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValidateSize : flag)
    }
    unsafe fn drawCellAtRow_column_(&self, row: NSInteger, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawCellAtRow : row, column : col)
    }
    unsafe fn highlightCell_atRow_column_(&self, flag: BOOL, row: NSInteger, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlightCell : flag, atRow : row, column : col)
    }
    unsafe fn scrollCellToVisibleAtRow_column_(&self, row: NSInteger, col: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollCellToVisibleAtRow : row, column : col)
    }
    unsafe fn mouseDown_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseDown : event)
    }
    unsafe fn performKeyEquivalent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performKeyEquivalent : event)
    }
    unsafe fn sendAction(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendAction)
    }
    unsafe fn sendDoubleAction(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendDoubleAction)
    }
    unsafe fn textShouldBeginEditing_(&self, textObject: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textShouldBeginEditing : textObject)
    }
    unsafe fn textShouldEndEditing_(&self, textObject: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textShouldEndEditing : textObject)
    }
    unsafe fn textDidBeginEditing_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidBeginEditing : notification)
    }
    unsafe fn textDidEndEditing_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidEndEditing : notification)
    }
    unsafe fn textDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidChange : notification)
    }
    unsafe fn selectText_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectText : sender)
    }
    unsafe fn selectTextAtRow_column_(&self, row: NSInteger, col: NSInteger) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectTextAtRow : row, column : col)
    }
    unsafe fn acceptsFirstMouse_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, acceptsFirstMouse : event)
    }
    unsafe fn resetCursorRects(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resetCursorRects)
    }
    unsafe fn setToolTip_forCell_(&self, toolTipString: NSString, cell: NSCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTipString, forCell : cell)
    }
    unsafe fn toolTipForCell_(&self, cell: NSCell) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolTipForCell : cell)
    }
    unsafe fn cellClass(&self) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellClass)
    }
    unsafe fn setCellClass_(&self, cellClass: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCellClass : cellClass)
    }
    unsafe fn prototype(&self) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prototype)
    }
    unsafe fn setPrototype_(&self, prototype: NSCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrototype : prototype)
    }
    unsafe fn mode(&self) -> NSMatrixMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mode)
    }
    unsafe fn setMode_(&self, mode: NSMatrixMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMode : mode)
    }
    unsafe fn allowsEmptySelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsEmptySelection)
    }
    unsafe fn setAllowsEmptySelection_(&self, allowsEmptySelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsEmptySelection : allowsEmptySelection)
    }
    unsafe fn cells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cells)
    }
    unsafe fn selectedCell(&self) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedCell)
    }
    unsafe fn selectedCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedCells)
    }
    unsafe fn selectedRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRow)
    }
    unsafe fn selectedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedColumn)
    }
    unsafe fn isSelectionByRect(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectionByRect)
    }
    unsafe fn setSelectionByRect_(&self, selectionByRect: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionByRect : selectionByRect)
    }
    unsafe fn cellSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellSize)
    }
    unsafe fn setCellSize_(&self, cellSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCellSize : cellSize)
    }
    unsafe fn intercellSpacing(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intercellSpacing)
    }
    unsafe fn setIntercellSpacing_(&self, intercellSpacing: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntercellSpacing : intercellSpacing)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn cellBackgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellBackgroundColor)
    }
    unsafe fn setCellBackgroundColor_(&self, cellBackgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCellBackgroundColor : cellBackgroundColor)
    }
    unsafe fn drawsCellBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsCellBackground)
    }
    unsafe fn setDrawsCellBackground_(&self, drawsCellBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsCellBackground : drawsCellBackground)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn numberOfRows(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfRows)
    }
    unsafe fn numberOfColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColumns)
    }
    unsafe fn doubleAction(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleAction)
    }
    unsafe fn setDoubleAction_(&self, doubleAction: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleAction : doubleAction)
    }
    unsafe fn autosizesCells(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosizesCells)
    }
    unsafe fn setAutosizesCells_(&self, autosizesCells: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosizesCells : autosizesCells)
    }
    unsafe fn isAutoscroll(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAutoscroll)
    }
    unsafe fn setAutoscroll_(&self, autoscroll: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoscroll : autoscroll)
    }
    unsafe fn mouseDownFlags(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mouseDownFlags)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn autorecalculatesCellSize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autorecalculatesCellSize)
    }
    unsafe fn setAutorecalculatesCellSize_(&self, autorecalculatesCellSize: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutorecalculatesCellSize : autorecalculatesCellSize)
    }
}
impl NSMatrix_NSKeyboardUI for NSMatrix {}
pub trait PNSMatrixDelegate: Sized + std::ops::Deref {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSForm(pub id);
impl std::ops::Deref for NSForm {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSForm {}
impl NSForm {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSForm").unwrap(), alloc) })
    }
}
impl INSMatrix for NSForm {}
impl PNSUserInterfaceValidations for NSForm {}
impl PNSViewToolTipOwner for NSForm {}
impl From<NSForm> for NSMatrix {
    fn from(child: NSForm) -> NSMatrix {
        NSMatrix(child.0)
    }
}
impl std::convert::TryFrom<NSMatrix> for NSForm {
    type Error = &'static str;
    fn try_from(parent: NSMatrix) -> Result<NSForm, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSForm").unwrap()) };
        if is_kind_of {
            Ok(NSForm(parent.0))
        } else {
            Err("This NSMatrix cannot be downcasted to NSForm")
        }
    }
}
impl INSControl for NSForm {}
impl INSView for NSForm {}
impl PNSAnimatablePropertyContainer for NSForm {}
impl PNSUserInterfaceItemIdentification for NSForm {}
impl PNSDraggingDestination for NSForm {}
impl PNSAppearanceCustomization for NSForm {}
impl PNSAccessibilityElement for NSForm {}
impl PNSAccessibility for NSForm {}
impl INSResponder for NSForm {}
impl PNSCoding for NSForm {}
impl INSObject for NSForm {}
impl PNSObject for NSForm {}
impl INSForm for NSForm {}
pub trait INSForm: Sized + std::ops::Deref {
    unsafe fn indexOfSelectedItem(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexOfSelectedItem)
    }
    unsafe fn setEntryWidth_(&self, width: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEntryWidth : width)
    }
    unsafe fn setInterlineSpacing_(&self, spacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInterlineSpacing : spacing)
    }
    unsafe fn setBordered_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : flag)
    }
    unsafe fn setBezeled_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezeled : flag)
    }
    unsafe fn setTitleAlignment_(&self, mode: NSTextAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleAlignment : mode)
    }
    unsafe fn setTextAlignment_(&self, mode: NSTextAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextAlignment : mode)
    }
    unsafe fn setTitleFont_(&self, fontObj: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleFont : fontObj)
    }
    unsafe fn setTextFont_(&self, fontObj: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextFont : fontObj)
    }
    unsafe fn cellAtIndex_(&self, index: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellAtIndex : index)
    }
    unsafe fn drawCellAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawCellAtIndex : index)
    }
    unsafe fn addEntry_(&self, title: NSString) -> NSFormCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addEntry : title)
    }
    unsafe fn insertEntry_atIndex_(&self, title: NSString, index: NSInteger) -> NSFormCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertEntry : title, atIndex : index)
    }
    unsafe fn removeEntryAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeEntryAtIndex : index)
    }
    unsafe fn indexOfCellWithTag_(&self, tag: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfCellWithTag : tag)
    }
    unsafe fn selectTextAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectTextAtIndex : index)
    }
    unsafe fn setFrameSize_(&self, newSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrameSize : newSize)
    }
    unsafe fn setTitleBaseWritingDirection_(&self, writingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleBaseWritingDirection : writingDirection)
    }
    unsafe fn setTextBaseWritingDirection_(&self, writingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextBaseWritingDirection : writingDirection)
    }
    unsafe fn setPreferredTextFieldWidth_(&self, preferredWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredTextFieldWidth : preferredWidth)
    }
    unsafe fn preferredTextFieldWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredTextFieldWidth)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFormCell(pub id);
impl std::ops::Deref for NSFormCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFormCell {}
impl NSFormCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFormCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSFormCell {}
impl std::convert::TryFrom<NSActionCell> for NSFormCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSFormCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFormCell").unwrap()) };
        if is_kind_of {
            Ok(NSFormCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSFormCell")
        }
    }
}
impl INSCell for NSFormCell {}
impl PNSCopying for NSFormCell {}
impl PNSCoding for NSFormCell {}
impl PNSUserInterfaceItemIdentification for NSFormCell {}
impl PNSAccessibilityElement for NSFormCell {}
impl PNSAccessibility for NSFormCell {}
impl INSObject for NSFormCell {}
impl PNSObject for NSFormCell {}
impl INSFormCell for NSFormCell {}
pub trait INSFormCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn titleWidth_(&self, size: NSSize) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, titleWidth : size)
    }
    unsafe fn titleWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleWidth)
    }
    unsafe fn setTitleWidth_(&self, titleWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleWidth : titleWidth)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn titleFont(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleFont)
    }
    unsafe fn setTitleFont_(&self, titleFont: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleFont : titleFont)
    }
    unsafe fn isOpaque(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpaque)
    }
    unsafe fn placeholderString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderString)
    }
    unsafe fn setPlaceholderString_(&self, placeholderString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderString : placeholderString)
    }
    unsafe fn placeholderAttributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderAttributedString)
    }
    unsafe fn setPlaceholderAttributedString_(
        &self,
        placeholderAttributedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderAttributedString : placeholderAttributedString)
    }
    unsafe fn titleAlignment(&self) -> NSTextAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleAlignment)
    }
    unsafe fn setTitleAlignment_(&self, titleAlignment: NSTextAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleAlignment : titleAlignment)
    }
    unsafe fn titleBaseWritingDirection(&self) -> NSWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleBaseWritingDirection)
    }
    unsafe fn setTitleBaseWritingDirection_(&self, titleBaseWritingDirection: NSWritingDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitleBaseWritingDirection : titleBaseWritingDirection)
    }
    unsafe fn preferredTextFieldWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredTextFieldWidth)
    }
    unsafe fn setPreferredTextFieldWidth_(&self, preferredTextFieldWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredTextFieldWidth : preferredTextFieldWidth)
    }
}
impl NSFormCell_NSKeyboardUI for NSFormCell {}
impl NSFormCell_NSFormCellAttributedStringMethods for NSFormCell {}
pub type NSGlassEffectViewStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGlassEffectView(pub id);
impl std::ops::Deref for NSGlassEffectView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGlassEffectView {}
impl NSGlassEffectView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGlassEffectView").unwrap(), alloc) })
    }
}
impl INSView for NSGlassEffectView {}
impl PNSAnimatablePropertyContainer for NSGlassEffectView {}
impl PNSUserInterfaceItemIdentification for NSGlassEffectView {}
impl PNSDraggingDestination for NSGlassEffectView {}
impl PNSAppearanceCustomization for NSGlassEffectView {}
impl PNSAccessibilityElement for NSGlassEffectView {}
impl PNSAccessibility for NSGlassEffectView {}
impl std::convert::TryFrom<NSView> for NSGlassEffectView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSGlassEffectView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGlassEffectView").unwrap()) };
        if is_kind_of {
            Ok(NSGlassEffectView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSGlassEffectView")
        }
    }
}
impl INSResponder for NSGlassEffectView {}
impl PNSCoding for NSGlassEffectView {}
impl INSObject for NSGlassEffectView {}
impl PNSObject for NSGlassEffectView {}
impl INSGlassEffectView for NSGlassEffectView {}
pub trait INSGlassEffectView: Sized + std::ops::Deref {
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn cornerRadius(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cornerRadius)
    }
    unsafe fn setCornerRadius_(&self, cornerRadius: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCornerRadius : cornerRadius)
    }
    unsafe fn tintColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tintColor)
    }
    unsafe fn setTintColor_(&self, tintColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTintColor : tintColor)
    }
    unsafe fn style(&self) -> NSGlassEffectViewStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, style)
    }
    unsafe fn setStyle_(&self, style: NSGlassEffectViewStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStyle : style)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGlassEffectContainerView(pub id);
impl std::ops::Deref for NSGlassEffectContainerView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGlassEffectContainerView {}
impl NSGlassEffectContainerView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGlassEffectContainerView").unwrap(), alloc) })
    }
}
impl INSView for NSGlassEffectContainerView {}
impl PNSAnimatablePropertyContainer for NSGlassEffectContainerView {}
impl PNSUserInterfaceItemIdentification for NSGlassEffectContainerView {}
impl PNSDraggingDestination for NSGlassEffectContainerView {}
impl PNSAppearanceCustomization for NSGlassEffectContainerView {}
impl PNSAccessibilityElement for NSGlassEffectContainerView {}
impl PNSAccessibility for NSGlassEffectContainerView {}
impl std::convert::TryFrom<NSView> for NSGlassEffectContainerView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSGlassEffectContainerView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGlassEffectContainerView").unwrap()) };
        if is_kind_of {
            Ok(NSGlassEffectContainerView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSGlassEffectContainerView")
        }
    }
}
impl INSResponder for NSGlassEffectContainerView {}
impl PNSCoding for NSGlassEffectContainerView {}
impl INSObject for NSGlassEffectContainerView {}
impl PNSObject for NSGlassEffectContainerView {}
impl INSGlassEffectContainerView for NSGlassEffectContainerView {}
pub trait INSGlassEffectContainerView: Sized + std::ops::Deref {
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn spacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spacing)
    }
    unsafe fn setSpacing_(&self, spacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpacing : spacing)
    }
}
pub type NSMenuItemBadgeType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMenuItemBadge(pub id);
impl std::ops::Deref for NSMenuItemBadge {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMenuItemBadge {}
impl NSMenuItemBadge {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItemBadge").unwrap(), alloc) })
    }
}
impl PNSCopying for NSMenuItemBadge {}
impl INSObject for NSMenuItemBadge {}
impl PNSObject for NSMenuItemBadge {}
impl std::convert::TryFrom<NSObject> for NSMenuItemBadge {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSMenuItemBadge, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMenuItemBadge").unwrap()) };
        if is_kind_of {
            Ok(NSMenuItemBadge(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSMenuItemBadge")
        }
    }
}
impl INSMenuItemBadge for NSMenuItemBadge {}
pub trait INSMenuItemBadge: Sized + std::ops::Deref {
    unsafe fn initWithCount_type_(
        &self,
        itemCount: NSInteger,
        type_: NSMenuItemBadgeType,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCount : itemCount, r#type : type_)
    }
    unsafe fn initWithCount_(&self, itemCount: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCount : itemCount)
    }
    unsafe fn initWithString_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithString : string)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn itemCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemCount)
    }
    unsafe fn type_(&self) -> NSMenuItemBadgeType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, type)
    }
    unsafe fn stringValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stringValue)
    }
    unsafe fn updatesWithCount_(itemCount: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItemBadge").unwrap(), updatesWithCount : itemCount)
    }
    unsafe fn newItemsWithCount_(itemCount: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItemBadge").unwrap(), newItemsWithCount : itemCount)
    }
    unsafe fn alertsWithCount_(itemCount: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItemBadge").unwrap(), alertsWithCount : itemCount)
    }
}
pub type NSColorSpaceModel = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorSpace(pub id);
impl std::ops::Deref for NSColorSpace {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorSpace {}
impl NSColorSpace {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSColorSpace {}
impl INSObject for NSColorSpace {}
impl PNSObject for NSColorSpace {}
impl std::convert::TryFrom<NSObject> for NSColorSpace {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSColorSpace, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap()) };
        if is_kind_of {
            Ok(NSColorSpace(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSColorSpace")
        }
    }
}
impl INSColorSpace for NSColorSpace {}
pub trait INSColorSpace: Sized + std::ops::Deref {
    unsafe fn initWithICCProfileData_(&self, iccData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithICCProfileData : iccData)
    }
    unsafe fn initWithColorSyncProfile_(&self, prof: *mut ::std::os::raw::c_void) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithColorSyncProfile : prof)
    }
    unsafe fn initWithCGColorSpace_(&self, cgColorSpace: CGColorSpaceRef) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCGColorSpace : cgColorSpace)
    }
    unsafe fn ICCProfileData(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ICCProfileData)
    }
    unsafe fn colorSyncProfile(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSyncProfile)
    }
    unsafe fn CGColorSpace(&self) -> CGColorSpaceRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGColorSpace)
    }
    unsafe fn numberOfColorComponents(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColorComponents)
    }
    unsafe fn colorSpaceModel(&self) -> NSColorSpaceModel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpaceModel)
    }
    unsafe fn localizedName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedName)
    }
    unsafe fn availableColorSpacesWithModel_(model: NSColorSpaceModel) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), availableColorSpacesWithModel : model)
    }
    unsafe fn sRGBColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), sRGBColorSpace)
    }
    unsafe fn genericGamma22GrayColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), genericGamma22GrayColorSpace)
    }
    unsafe fn extendedSRGBColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), extendedSRGBColorSpace)
    }
    unsafe fn extendedGenericGamma22GrayColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), extendedGenericGamma22GrayColorSpace)
    }
    unsafe fn displayP3ColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), displayP3ColorSpace)
    }
    unsafe fn adobeRGB1998ColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), adobeRGB1998ColorSpace)
    }
    unsafe fn genericRGBColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), genericRGBColorSpace)
    }
    unsafe fn genericGrayColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), genericGrayColorSpace)
    }
    unsafe fn genericCMYKColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), genericCMYKColorSpace)
    }
    unsafe fn deviceRGBColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), deviceRGBColorSpace)
    }
    unsafe fn deviceGrayColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), deviceGrayColorSpace)
    }
    unsafe fn deviceCMYKColorSpace() -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorSpace").unwrap(), deviceCMYKColorSpace)
    }
}
pub type NSImageHintKey = NSString;
pub type NSImageLayoutDirection = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSImageRep(pub id);
impl std::ops::Deref for NSImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSImageRep {}
impl NSImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), alloc) })
    }
}
impl PNSCopying for NSImageRep {}
impl PNSCoding for NSImageRep {}
impl INSObject for NSImageRep {}
impl PNSObject for NSImageRep {}
impl std::convert::TryFrom<NSObject> for NSImageRep {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSImageRep(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSImageRep")
        }
    }
}
impl INSImageRep for NSImageRep {}
pub trait INSImageRep: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn draw(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draw)
    }
    unsafe fn drawAtPoint_(&self, point: NSPoint) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawAtPoint : point)
    }
    unsafe fn drawInRect_(&self, rect: NSRect) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : rect)
    }
    unsafe fn drawInRect_fromRect_operation_fraction_respectFlipped_hints_(
        &self,
        dstSpacePortionRect: NSRect,
        srcSpacePortionRect: NSRect,
        op: NSCompositingOperation,
        requestedAlpha: CGFloat,
        respectContextIsFlipped: BOOL,
        hints: NSDictionary,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : dstSpacePortionRect, fromRect : srcSpacePortionRect, operation : op, fraction : requestedAlpha, respectFlipped : respectContextIsFlipped, hints : hints)
    }
    unsafe fn CGImageForProposedRect_context_hints_(
        &self,
        proposedDestRect: *mut NSRect,
        context: NSGraphicsContext,
        hints: NSDictionary,
    ) -> CGImageRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, CGImageForProposedRect : proposedDestRect, context : context, hints : hints)
    }
    unsafe fn size(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, size)
    }
    unsafe fn setSize_(&self, size: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSize : size)
    }
    unsafe fn hasAlpha(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasAlpha)
    }
    unsafe fn setAlpha_(&self, alpha: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlpha : alpha)
    }
    unsafe fn isOpaque(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOpaque)
    }
    unsafe fn setOpaque_(&self, opaque: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOpaque : opaque)
    }
    unsafe fn colorSpaceName(&self) -> NSColorSpaceName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpaceName)
    }
    unsafe fn setColorSpaceName_(&self, colorSpaceName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColorSpaceName : colorSpaceName)
    }
    unsafe fn bitsPerSample(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bitsPerSample)
    }
    unsafe fn setBitsPerSample_(&self, bitsPerSample: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBitsPerSample : bitsPerSample)
    }
    unsafe fn pixelsWide(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pixelsWide)
    }
    unsafe fn setPixelsWide_(&self, pixelsWide: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPixelsWide : pixelsWide)
    }
    unsafe fn pixelsHigh(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pixelsHigh)
    }
    unsafe fn setPixelsHigh_(&self, pixelsHigh: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPixelsHigh : pixelsHigh)
    }
    unsafe fn layoutDirection(&self) -> NSImageLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutDirection)
    }
    unsafe fn setLayoutDirection_(&self, layoutDirection: NSImageLayoutDirection)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayoutDirection : layoutDirection)
    }
    unsafe fn registerImageRepClass_(imageRepClass: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), registerImageRepClass : imageRepClass)
    }
    unsafe fn unregisterImageRepClass_(imageRepClass: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), unregisterImageRepClass : imageRepClass)
    }
    unsafe fn imageRepClassForFileType_(type_: NSString) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepClassForFileType : type_)
    }
    unsafe fn imageRepClassForPasteboardType_(type_: NSString) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepClassForPasteboardType : type_)
    }
    unsafe fn imageRepClassForType_(type_: NSString) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepClassForType : type_)
    }
    unsafe fn imageRepClassForData_(data: NSData) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepClassForData : data)
    }
    unsafe fn canInitWithData_(data: NSData) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), canInitWithData : data)
    }
    unsafe fn imageUnfilteredFileTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageUnfilteredFileTypes)
    }
    unsafe fn imageUnfilteredPasteboardTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageUnfilteredPasteboardTypes)
    }
    unsafe fn imageFileTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageFileTypes)
    }
    unsafe fn imagePasteboardTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imagePasteboardTypes)
    }
    unsafe fn canInitWithPasteboard_(pasteboard: NSPasteboard) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), canInitWithPasteboard : pasteboard)
    }
    unsafe fn imageRepsWithContentsOfFile_(filename: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepsWithContentsOfFile : filename)
    }
    unsafe fn imageRepWithContentsOfFile_(filename: NSString) -> NSImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepWithContentsOfFile : filename)
    }
    unsafe fn imageRepsWithContentsOfURL_(url: NSURL) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepsWithContentsOfURL : url)
    }
    unsafe fn imageRepWithContentsOfURL_(url: NSURL) -> NSImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepWithContentsOfURL : url)
    }
    unsafe fn imageRepsWithPasteboard_(pasteboard: NSPasteboard) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepsWithPasteboard : pasteboard)
    }
    unsafe fn imageRepWithPasteboard_(pasteboard: NSPasteboard) -> NSImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageRepWithPasteboard : pasteboard)
    }
    unsafe fn registeredImageRepClasses() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), registeredImageRepClasses)
    }
    unsafe fn imageUnfilteredTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageUnfilteredTypes)
    }
    unsafe fn imageTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageRep").unwrap(), imageTypes)
    }
}
pub type NSTIFFCompression = NSUInteger;
pub type NSBitmapImageFileType = NSUInteger;
pub type NSImageRepLoadStatus = NSInteger;
pub type NSBitmapFormat = NSUInteger;
pub type NSBitmapImageRepPropertyKey = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBitmapImageRep(pub id);
impl std::ops::Deref for NSBitmapImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBitmapImageRep {}
impl NSBitmapImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSBitmapImageRep {}
impl INSImageRep for NSBitmapImageRep {}
impl PNSCopying for NSBitmapImageRep {}
impl PNSCoding for NSBitmapImageRep {}
impl From<NSBitmapImageRep> for NSImageRep {
    fn from(child: NSBitmapImageRep) -> NSImageRep {
        NSImageRep(child.0)
    }
}
impl std::convert::TryFrom<NSImageRep> for NSBitmapImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSBitmapImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSBitmapImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSBitmapImageRep")
        }
    }
}
impl INSObject for NSBitmapImageRep {}
impl PNSObject for NSBitmapImageRep {}
impl INSBitmapImageRep for NSBitmapImageRep {}
pub trait INSBitmapImageRep: Sized + std::ops::Deref {
    unsafe fn initWithFocusedViewRect_(&self, rect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFocusedViewRect : rect)
    }
    unsafe fn initWithBitmapDataPlanes_pixelsWide_pixelsHigh_bitsPerSample_samplesPerPixel_hasAlpha_isPlanar_colorSpaceName_bytesPerRow_bitsPerPixel_(
        &self,
        planes: *mut *mut ::std::os::raw::c_uchar,
        width: NSInteger,
        height: NSInteger,
        bps: NSInteger,
        spp: NSInteger,
        alpha: BOOL,
        isPlanar: BOOL,
        colorSpaceName: NSString,
        rBytes: NSInteger,
        pBits: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithBitmapDataPlanes : planes, pixelsWide : width, pixelsHigh : height, bitsPerSample : bps, samplesPerPixel : spp, hasAlpha : alpha, isPlanar : isPlanar, colorSpaceName : colorSpaceName, bytesPerRow : rBytes, bitsPerPixel : pBits)
    }
    unsafe fn initWithBitmapDataPlanes_pixelsWide_pixelsHigh_bitsPerSample_samplesPerPixel_hasAlpha_isPlanar_colorSpaceName_bitmapFormat_bytesPerRow_bitsPerPixel_(
        &self,
        planes: *mut *mut ::std::os::raw::c_uchar,
        width: NSInteger,
        height: NSInteger,
        bps: NSInteger,
        spp: NSInteger,
        alpha: BOOL,
        isPlanar: BOOL,
        colorSpaceName: NSString,
        bitmapFormat: NSBitmapFormat,
        rBytes: NSInteger,
        pBits: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithBitmapDataPlanes : planes, pixelsWide : width, pixelsHigh : height, bitsPerSample : bps, samplesPerPixel : spp, hasAlpha : alpha, isPlanar : isPlanar, colorSpaceName : colorSpaceName, bitmapFormat : bitmapFormat, bytesPerRow : rBytes, bitsPerPixel : pBits)
    }
    unsafe fn initWithCGImage_(&self, cgImage: CGImageRef) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCGImage : cgImage)
    }
    unsafe fn initWithCIImage_(&self, ciImage: CIImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCIImage : ciImage)
    }
    unsafe fn initWithData_(&self, data: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : data)
    }
    unsafe fn getBitmapDataPlanes_(&self, data: *mut *mut ::std::os::raw::c_uchar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getBitmapDataPlanes : data)
    }
    unsafe fn getCompression_factor_(&self, compression: *mut NSTIFFCompression, factor: *mut f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getCompression : compression, factor : factor)
    }
    unsafe fn setCompression_factor_(&self, compression: NSTIFFCompression, factor: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompression : compression, factor : factor)
    }
    unsafe fn TIFFRepresentationUsingCompression_factor_(
        &self,
        comp: NSTIFFCompression,
        factor: f32,
    ) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, TIFFRepresentationUsingCompression : comp, factor : factor)
    }
    unsafe fn canBeCompressedUsing_(&self, compression: NSTIFFCompression) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canBeCompressedUsing : compression)
    }
    unsafe fn colorizeByMappingGray_toColor_blackMapping_whiteMapping_(
        &self,
        midPoint: CGFloat,
        midPointColor: NSColor,
        shadowColor: NSColor,
        lightColor: NSColor,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorizeByMappingGray : midPoint, toColor : midPointColor, blackMapping : shadowColor, whiteMapping : lightColor)
    }
    unsafe fn initForIncrementalLoad(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, initForIncrementalLoad)
    }
    unsafe fn incrementalLoadFromData_complete_(&self, data: NSData, complete: BOOL) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, incrementalLoadFromData : data, complete : complete)
    }
    unsafe fn setColor_atX_y_(&self, color: NSColor, x: NSInteger, y: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color, atX : x, y : y)
    }
    unsafe fn colorAtX_y_(&self, x: NSInteger, y: NSInteger) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, colorAtX : x, y : y)
    }
    unsafe fn getPixel_atX_y_(&self, p: *mut NSUInteger, x: NSInteger, y: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getPixel : p, atX : x, y : y)
    }
    unsafe fn setPixel_atX_y_(&self, p: *mut NSUInteger, x: NSInteger, y: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPixel : p, atX : x, y : y)
    }
    unsafe fn bitmapImageRepByConvertingToColorSpace_renderingIntent_(
        &self,
        targetSpace: NSColorSpace,
        renderingIntent: NSColorRenderingIntent,
    ) -> NSBitmapImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, bitmapImageRepByConvertingToColorSpace : targetSpace, renderingIntent : renderingIntent)
    }
    unsafe fn bitmapImageRepByRetaggingWithColorSpace_(
        &self,
        newSpace: NSColorSpace,
    ) -> NSBitmapImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, bitmapImageRepByRetaggingWithColorSpace : newSpace)
    }
    unsafe fn bitmapData(&self) -> *mut ::std::os::raw::c_uchar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bitmapData)
    }
    unsafe fn isPlanar(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isPlanar)
    }
    unsafe fn samplesPerPixel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, samplesPerPixel)
    }
    unsafe fn bitsPerPixel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bitsPerPixel)
    }
    unsafe fn bytesPerRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bytesPerRow)
    }
    unsafe fn bytesPerPlane(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bytesPerPlane)
    }
    unsafe fn numberOfPlanes(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfPlanes)
    }
    unsafe fn bitmapFormat(&self) -> NSBitmapFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bitmapFormat)
    }
    unsafe fn TIFFRepresentation(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, TIFFRepresentation)
    }
    unsafe fn CGImage(&self) -> CGImageRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGImage)
    }
    unsafe fn colorSpace(&self) -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpace)
    }
    unsafe fn imageRepsWithData_(data: NSData) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), imageRepsWithData : data)
    }
    unsafe fn imageRepWithData_(data: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), imageRepWithData : data)
    }
    unsafe fn TIFFRepresentationOfImageRepsInArray_(array: NSArray) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), TIFFRepresentationOfImageRepsInArray : array)
    }
    unsafe fn TIFFRepresentationOfImageRepsInArray_usingCompression_factor_(
        array: NSArray,
        comp: NSTIFFCompression,
        factor: f32,
    ) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), TIFFRepresentationOfImageRepsInArray : array, usingCompression : comp, factor : factor)
    }
    unsafe fn getTIFFCompressionTypes_count_(
        list: *mut *const NSTIFFCompression,
        numTypes: *mut NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), getTIFFCompressionTypes : list, count : numTypes)
    }
    unsafe fn localizedNameForTIFFCompressionType_(compression: NSTIFFCompression) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBitmapImageRep").unwrap(), localizedNameForTIFFCompressionType : compression)
    }
}
impl NSBitmapImageRep_NSBitmapImageFileTypeExtensions for NSBitmapImageRep {}
pub type NSBrowserColumnResizingType = NSUInteger;
pub type NSBrowserDropOperation = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBrowser(pub id);
impl std::ops::Deref for NSBrowser {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBrowser {}
impl NSBrowser {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBrowser").unwrap(), alloc) })
    }
}
impl INSControl for NSBrowser {}
impl std::convert::TryFrom<NSControl> for NSBrowser {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSBrowser, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBrowser").unwrap()) };
        if is_kind_of {
            Ok(NSBrowser(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSBrowser")
        }
    }
}
impl INSView for NSBrowser {}
impl PNSAnimatablePropertyContainer for NSBrowser {}
impl PNSUserInterfaceItemIdentification for NSBrowser {}
impl PNSDraggingDestination for NSBrowser {}
impl PNSAppearanceCustomization for NSBrowser {}
impl PNSAccessibilityElement for NSBrowser {}
impl PNSAccessibility for NSBrowser {}
impl INSResponder for NSBrowser {}
impl PNSCoding for NSBrowser {}
impl INSObject for NSBrowser {}
impl PNSObject for NSBrowser {}
impl INSBrowser for NSBrowser {}
pub trait INSBrowser: Sized + std::ops::Deref {
    unsafe fn loadColumnZero(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, loadColumnZero)
    }
    unsafe fn setCellClass_(&self, factoryId: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCellClass : factoryId)
    }
    unsafe fn itemAtIndexPath_(&self, indexPath: NSIndexPath) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtIndexPath : indexPath)
    }
    unsafe fn itemAtRow_inColumn_(&self, row: NSInteger, column: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtRow : row, inColumn : column)
    }
    unsafe fn indexPathForColumn_(&self, column: NSInteger) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexPathForColumn : column)
    }
    unsafe fn isLeafItem_(&self, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isLeafItem : item)
    }
    unsafe fn reloadDataForRowIndexes_inColumn_(&self, rowIndexes: NSIndexSet, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadDataForRowIndexes : rowIndexes, inColumn : column)
    }
    unsafe fn parentForItemsInColumn_(&self, column: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, parentForItemsInColumn : column)
    }
    unsafe fn scrollRowToVisible_inColumn_(&self, row: NSInteger, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollRowToVisible : row, inColumn : column)
    }
    unsafe fn setTitle_ofColumn_(&self, string: NSString, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : string, ofColumn : column)
    }
    unsafe fn titleOfColumn_(&self, column: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, titleOfColumn : column)
    }
    unsafe fn setPath_(&self, path: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPath : path)
    }
    unsafe fn path(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, path)
    }
    unsafe fn pathToColumn_(&self, column: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathToColumn : column)
    }
    unsafe fn selectedCellInColumn_(&self, column: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectedCellInColumn : column)
    }
    unsafe fn selectRow_inColumn_(&self, row: NSInteger, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectRow : row, inColumn : column)
    }
    unsafe fn selectedRowInColumn_(&self, column: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectedRowInColumn : column)
    }
    unsafe fn selectRowIndexes_inColumn_(&self, indexes: NSIndexSet, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectRowIndexes : indexes, inColumn : column)
    }
    unsafe fn selectedRowIndexesInColumn_(&self, column: NSInteger) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectedRowIndexesInColumn : column)
    }
    unsafe fn reloadColumn_(&self, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadColumn : column)
    }
    unsafe fn validateVisibleColumns(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validateVisibleColumns)
    }
    unsafe fn scrollColumnsRightBy_(&self, shiftAmount: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollColumnsRightBy : shiftAmount)
    }
    unsafe fn scrollColumnsLeftBy_(&self, shiftAmount: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollColumnsLeftBy : shiftAmount)
    }
    unsafe fn scrollColumnToVisible_(&self, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollColumnToVisible : column)
    }
    unsafe fn addColumn(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, addColumn)
    }
    unsafe fn loadedCellAtRow_column_(&self, row: NSInteger, col: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, loadedCellAtRow : row, column : col)
    }
    unsafe fn selectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAll : sender)
    }
    unsafe fn tile(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tile)
    }
    unsafe fn doClick_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, doClick : sender)
    }
    unsafe fn doDoubleClick_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, doDoubleClick : sender)
    }
    unsafe fn sendAction(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendAction)
    }
    unsafe fn titleFrameOfColumn_(&self, column: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, titleFrameOfColumn : column)
    }
    unsafe fn drawTitleOfColumn_inRect_(&self, column: NSInteger, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawTitleOfColumn : column, inRect : rect)
    }
    unsafe fn frameOfColumn_(&self, column: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameOfColumn : column)
    }
    unsafe fn frameOfInsideOfColumn_(&self, column: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameOfInsideOfColumn : column)
    }
    unsafe fn frameOfRow_inColumn_(&self, row: NSInteger, column: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameOfRow : row, inColumn : column)
    }
    unsafe fn getRow_column_forPoint_(
        &self,
        row: *mut NSInteger,
        column: *mut NSInteger,
        point: NSPoint,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getRow : row, column : column, forPoint : point)
    }
    unsafe fn columnWidthForColumnContentWidth_(&self, columnContentWidth: CGFloat) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnWidthForColumnContentWidth : columnContentWidth)
    }
    unsafe fn columnContentWidthForColumnWidth_(&self, columnWidth: CGFloat) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnContentWidthForColumnWidth : columnWidth)
    }
    unsafe fn setWidth_ofColumn_(&self, columnWidth: CGFloat, columnIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : columnWidth, ofColumn : columnIndex)
    }
    unsafe fn widthOfColumn_(&self, column: NSInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, widthOfColumn : column)
    }
    unsafe fn noteHeightOfRowsWithIndexesChanged_inColumn_(
        &self,
        indexSet: NSIndexSet,
        columnIndex: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noteHeightOfRowsWithIndexesChanged : indexSet, inColumn : columnIndex)
    }
    unsafe fn setDefaultColumnWidth_(&self, columnWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultColumnWidth : columnWidth)
    }
    unsafe fn defaultColumnWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultColumnWidth)
    }
    unsafe fn canDragRowsWithIndexes_inColumn_withEvent_(
        &self,
        rowIndexes: NSIndexSet,
        column: NSInteger,
        event: NSEvent,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canDragRowsWithIndexes : rowIndexes, inColumn : column, withEvent : event)
    }
    unsafe fn draggingImageForRowsWithIndexes_inColumn_withEvent_offset_(
        &self,
        rowIndexes: NSIndexSet,
        column: NSInteger,
        event: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, draggingImageForRowsWithIndexes : rowIndexes, inColumn : column, withEvent : event, offset : dragImageOffset)
    }
    unsafe fn setDraggingSourceOperationMask_forLocal_(&self, mask: NSDragOperation, isLocal: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingSourceOperationMask : mask, forLocal : isLocal)
    }
    unsafe fn editItemAtIndexPath_withEvent_select_(
        &self,
        indexPath: NSIndexPath,
        event: NSEvent,
        select: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, editItemAtIndexPath : indexPath, withEvent : event, select : select)
    }
    unsafe fn isLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isLoaded)
    }
    unsafe fn doubleAction(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleAction)
    }
    unsafe fn setDoubleAction_(&self, doubleAction: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleAction : doubleAction)
    }
    unsafe fn cellPrototype(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellPrototype)
    }
    unsafe fn setCellPrototype_(&self, cellPrototype: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCellPrototype : cellPrototype)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn reusesColumns(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reusesColumns)
    }
    unsafe fn setReusesColumns_(&self, reusesColumns: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReusesColumns : reusesColumns)
    }
    unsafe fn hasHorizontalScroller(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasHorizontalScroller)
    }
    unsafe fn setHasHorizontalScroller_(&self, hasHorizontalScroller: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasHorizontalScroller : hasHorizontalScroller)
    }
    unsafe fn autohidesScroller(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autohidesScroller)
    }
    unsafe fn setAutohidesScroller_(&self, autohidesScroller: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutohidesScroller : autohidesScroller)
    }
    unsafe fn separatesColumns(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, separatesColumns)
    }
    unsafe fn setSeparatesColumns_(&self, separatesColumns: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSeparatesColumns : separatesColumns)
    }
    unsafe fn isTitled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTitled)
    }
    unsafe fn setTitled_(&self, titled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitled : titled)
    }
    unsafe fn minColumnWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minColumnWidth)
    }
    unsafe fn setMinColumnWidth_(&self, minColumnWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinColumnWidth : minColumnWidth)
    }
    unsafe fn maxVisibleColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxVisibleColumns)
    }
    unsafe fn setMaxVisibleColumns_(&self, maxVisibleColumns: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxVisibleColumns : maxVisibleColumns)
    }
    unsafe fn allowsMultipleSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMultipleSelection)
    }
    unsafe fn setAllowsMultipleSelection_(&self, allowsMultipleSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsMultipleSelection : allowsMultipleSelection)
    }
    unsafe fn allowsBranchSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsBranchSelection)
    }
    unsafe fn setAllowsBranchSelection_(&self, allowsBranchSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsBranchSelection : allowsBranchSelection)
    }
    unsafe fn allowsEmptySelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsEmptySelection)
    }
    unsafe fn setAllowsEmptySelection_(&self, allowsEmptySelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsEmptySelection : allowsEmptySelection)
    }
    unsafe fn takesTitleFromPreviousColumn(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, takesTitleFromPreviousColumn)
    }
    unsafe fn setTakesTitleFromPreviousColumn_(&self, takesTitleFromPreviousColumn: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTakesTitleFromPreviousColumn : takesTitleFromPreviousColumn)
    }
    unsafe fn sendsActionOnArrowKeys(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendsActionOnArrowKeys)
    }
    unsafe fn setSendsActionOnArrowKeys_(&self, sendsActionOnArrowKeys: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSendsActionOnArrowKeys : sendsActionOnArrowKeys)
    }
    unsafe fn pathSeparator(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pathSeparator)
    }
    unsafe fn setPathSeparator_(&self, pathSeparator: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPathSeparator : pathSeparator)
    }
    unsafe fn clickedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickedColumn)
    }
    unsafe fn clickedRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickedRow)
    }
    unsafe fn selectedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedColumn)
    }
    unsafe fn selectedCell(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedCell)
    }
    unsafe fn selectedCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedCells)
    }
    unsafe fn selectionIndexPath(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexPath)
    }
    unsafe fn setSelectionIndexPath_(&self, selectionIndexPath: NSIndexPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexPath : selectionIndexPath)
    }
    unsafe fn selectionIndexPaths(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexPaths)
    }
    unsafe fn setSelectionIndexPaths_(&self, selectionIndexPaths: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexPaths : selectionIndexPaths)
    }
    unsafe fn lastColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lastColumn)
    }
    unsafe fn setLastColumn_(&self, lastColumn: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLastColumn : lastColumn)
    }
    unsafe fn numberOfVisibleColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfVisibleColumns)
    }
    unsafe fn firstVisibleColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstVisibleColumn)
    }
    unsafe fn lastVisibleColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lastVisibleColumn)
    }
    unsafe fn titleHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleHeight)
    }
    unsafe fn columnResizingType(&self) -> NSBrowserColumnResizingType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, columnResizingType)
    }
    unsafe fn setColumnResizingType_(&self, columnResizingType: NSBrowserColumnResizingType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColumnResizingType : columnResizingType)
    }
    unsafe fn prefersAllColumnUserResizing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prefersAllColumnUserResizing)
    }
    unsafe fn setPrefersAllColumnUserResizing_(&self, prefersAllColumnUserResizing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrefersAllColumnUserResizing : prefersAllColumnUserResizing)
    }
    unsafe fn rowHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowHeight)
    }
    unsafe fn setRowHeight_(&self, rowHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowHeight : rowHeight)
    }
    unsafe fn columnsAutosaveName(&self) -> NSBrowserColumnsAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, columnsAutosaveName)
    }
    unsafe fn setColumnsAutosaveName_(&self, columnsAutosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColumnsAutosaveName : columnsAutosaveName)
    }
    unsafe fn allowsTypeSelect(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsTypeSelect)
    }
    unsafe fn setAllowsTypeSelect_(&self, allowsTypeSelect: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsTypeSelect : allowsTypeSelect)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn removeSavedColumnsWithAutosaveName_(name: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBrowser").unwrap(), removeSavedColumnsWithAutosaveName : name)
    }
    unsafe fn cellClass() -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBrowser").unwrap(), cellClass)
    }
}
pub trait PNSBrowserDelegate: Sized + std::ops::Deref {
    unsafe fn browser_numberOfRowsInColumn_(
        &self,
        sender: NSBrowser,
        column: NSInteger,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, numberOfRowsInColumn : column)
    }
    unsafe fn browser_createRowsForColumn_inMatrix_(
        &self,
        sender: NSBrowser,
        column: NSInteger,
        matrix: NSMatrix,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, createRowsForColumn : column, inMatrix : matrix)
    }
    unsafe fn browser_numberOfChildrenOfItem_(&self, browser: NSBrowser, item: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, numberOfChildrenOfItem : item)
    }
    unsafe fn browser_child_ofItem_(&self, browser: NSBrowser, index: NSInteger, item: id) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, child : index, ofItem : item)
    }
    unsafe fn browser_isLeafItem_(&self, browser: NSBrowser, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, isLeafItem : item)
    }
    unsafe fn browser_objectValueForItem_(&self, browser: NSBrowser, item: id) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, objectValueForItem : item)
    }
    unsafe fn browser_heightOfRow_inColumn_(
        &self,
        browser: NSBrowser,
        row: NSInteger,
        columnIndex: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, heightOfRow : row, inColumn : columnIndex)
    }
    unsafe fn rootItemForBrowser_(&self, browser: NSBrowser) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rootItemForBrowser : browser)
    }
    unsafe fn browser_setObjectValue_forItem_(&self, browser: NSBrowser, object: id, item: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, setObjectValue : object, forItem : item)
    }
    unsafe fn browser_shouldEditItem_(&self, browser: NSBrowser, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, shouldEditItem : item)
    }
    unsafe fn browser_willDisplayCell_atRow_column_(
        &self,
        sender: NSBrowser,
        cell: id,
        row: NSInteger,
        column: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, willDisplayCell : cell, atRow : row, column : column)
    }
    unsafe fn browser_titleOfColumn_(&self, sender: NSBrowser, column: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, titleOfColumn : column)
    }
    unsafe fn browser_selectCellWithString_inColumn_(
        &self,
        sender: NSBrowser,
        title: NSString,
        column: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, selectCellWithString : title, inColumn : column)
    }
    unsafe fn browser_selectRow_inColumn_(
        &self,
        sender: NSBrowser,
        row: NSInteger,
        column: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, selectRow : row, inColumn : column)
    }
    unsafe fn browser_isColumnValid_(&self, sender: NSBrowser, column: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : sender, isColumnValid : column)
    }
    unsafe fn browserWillScroll_(&self, sender: NSBrowser)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browserWillScroll : sender)
    }
    unsafe fn browserDidScroll_(&self, sender: NSBrowser)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browserDidScroll : sender)
    }
    unsafe fn browser_shouldSizeColumn_forUserResize_toWidth_(
        &self,
        browser: NSBrowser,
        columnIndex: NSInteger,
        forUserResize: BOOL,
        suggestedWidth: CGFloat,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, shouldSizeColumn : columnIndex, forUserResize : forUserResize, toWidth : suggestedWidth)
    }
    unsafe fn browser_sizeToFitWidthOfColumn_(
        &self,
        browser: NSBrowser,
        columnIndex: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, sizeToFitWidthOfColumn : columnIndex)
    }
    unsafe fn browserColumnConfigurationDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browserColumnConfigurationDidChange : notification)
    }
    unsafe fn browser_shouldShowCellExpansionForRow_column_(
        &self,
        browser: NSBrowser,
        row: NSInteger,
        column: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, shouldShowCellExpansionForRow : row, column : column)
    }
    unsafe fn browser_writeRowsWithIndexes_inColumn_toPasteboard_(
        &self,
        browser: NSBrowser,
        rowIndexes: NSIndexSet,
        column: NSInteger,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, writeRowsWithIndexes : rowIndexes, inColumn : column, toPasteboard : pasteboard)
    }
    unsafe fn browser_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_inColumn_(
        &self,
        browser: NSBrowser,
        dropDestination: NSURL,
        rowIndexes: NSIndexSet,
        column: NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, namesOfPromisedFilesDroppedAtDestination : dropDestination, forDraggedRowsWithIndexes : rowIndexes, inColumn : column)
    }
    unsafe fn browser_canDragRowsWithIndexes_inColumn_withEvent_(
        &self,
        browser: NSBrowser,
        rowIndexes: NSIndexSet,
        column: NSInteger,
        event: NSEvent,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, canDragRowsWithIndexes : rowIndexes, inColumn : column, withEvent : event)
    }
    unsafe fn browser_draggingImageForRowsWithIndexes_inColumn_withEvent_offset_(
        &self,
        browser: NSBrowser,
        rowIndexes: NSIndexSet,
        column: NSInteger,
        event: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, draggingImageForRowsWithIndexes : rowIndexes, inColumn : column, withEvent : event, offset : dragImageOffset)
    }
    unsafe fn browser_validateDrop_proposedRow_column_dropOperation_(
        &self,
        browser: NSBrowser,
        info: *mut u64,
        row: *mut NSInteger,
        column: *mut NSInteger,
        dropOperation: *mut NSBrowserDropOperation,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, validateDrop : info, proposedRow : row, column : column, dropOperation : dropOperation)
    }
    unsafe fn browser_acceptDrop_atRow_column_dropOperation_(
        &self,
        browser: NSBrowser,
        info: *mut u64,
        row: NSInteger,
        column: NSInteger,
        dropOperation: NSBrowserDropOperation,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, acceptDrop : info, atRow : row, column : column, dropOperation : dropOperation)
    }
    unsafe fn browser_typeSelectStringForRow_inColumn_(
        &self,
        browser: NSBrowser,
        row: NSInteger,
        column: NSInteger,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, typeSelectStringForRow : row, inColumn : column)
    }
    unsafe fn browser_shouldTypeSelectForEvent_withCurrentSearchString_(
        &self,
        browser: NSBrowser,
        event: NSEvent,
        searchString: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, shouldTypeSelectForEvent : event, withCurrentSearchString : searchString)
    }
    unsafe fn browser_nextTypeSelectMatchFromRow_toRow_inColumn_forString_(
        &self,
        browser: NSBrowser,
        startRow: NSInteger,
        endRow: NSInteger,
        column: NSInteger,
        searchString: NSString,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, nextTypeSelectMatchFromRow : startRow, toRow : endRow, inColumn : column, forString : searchString)
    }
    unsafe fn browser_previewViewControllerForLeafItem_(
        &self,
        browser: NSBrowser,
        item: id,
    ) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, previewViewControllerForLeafItem : item)
    }
    unsafe fn browser_headerViewControllerForItem_(
        &self,
        browser: NSBrowser,
        item: id,
    ) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, headerViewControllerForItem : item)
    }
    unsafe fn browser_didChangeLastColumn_toColumn_(
        &self,
        browser: NSBrowser,
        oldLastColumn: NSInteger,
        column: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, didChangeLastColumn : oldLastColumn, toColumn : column)
    }
    unsafe fn browser_selectionIndexesForProposedSelection_inColumn_(
        &self,
        browser: NSBrowser,
        proposedSelectionIndexes: NSIndexSet,
        column: NSInteger,
    ) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, browser : browser, selectionIndexesForProposedSelection : proposedSelectionIndexes, inColumn : column)
    }
}
impl NSBrowser_NSDeprecated for NSBrowser {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBrowserCell(pub id);
impl std::ops::Deref for NSBrowserCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBrowserCell {}
impl NSBrowserCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBrowserCell").unwrap(), alloc) })
    }
}
impl INSCell for NSBrowserCell {}
impl PNSCopying for NSBrowserCell {}
impl PNSCoding for NSBrowserCell {}
impl PNSUserInterfaceItemIdentification for NSBrowserCell {}
impl PNSAccessibilityElement for NSBrowserCell {}
impl PNSAccessibility for NSBrowserCell {}
impl std::convert::TryFrom<NSCell> for NSBrowserCell {
    type Error = &'static str;
    fn try_from(parent: NSCell) -> Result<NSBrowserCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBrowserCell").unwrap()) };
        if is_kind_of {
            Ok(NSBrowserCell(parent.0))
        } else {
            Err("This NSCell cannot be downcasted to NSBrowserCell")
        }
    }
}
impl INSObject for NSBrowserCell {}
impl PNSObject for NSBrowserCell {}
impl INSBrowserCell for NSBrowserCell {}
pub trait INSBrowserCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn highlightColorInView_(&self, controlView: NSView) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlightColorInView : controlView)
    }
    unsafe fn reset(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reset)
    }
    unsafe fn set(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, set)
    }
    unsafe fn isLeaf(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isLeaf)
    }
    unsafe fn setLeaf_(&self, leaf: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLeaf : leaf)
    }
    unsafe fn isLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isLoaded)
    }
    unsafe fn setLoaded_(&self, loaded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLoaded : loaded)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn alternateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternateImage)
    }
    unsafe fn setAlternateImage_(&self, alternateImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlternateImage : alternateImage)
    }
    unsafe fn branchImage() -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBrowserCell").unwrap(), branchImage)
    }
    unsafe fn highlightedBranchImage() -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBrowserCell").unwrap(), highlightedBranchImage)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCachedImageRep(pub id);
impl std::ops::Deref for NSCachedImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCachedImageRep {}
impl NSCachedImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCachedImageRep").unwrap(), alloc) })
    }
}
impl INSImageRep for NSCachedImageRep {}
impl PNSCopying for NSCachedImageRep {}
impl PNSCoding for NSCachedImageRep {}
impl std::convert::TryFrom<NSImageRep> for NSCachedImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSCachedImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCachedImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSCachedImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSCachedImageRep")
        }
    }
}
impl INSObject for NSCachedImageRep {}
impl PNSObject for NSCachedImageRep {}
impl INSCachedImageRep for NSCachedImageRep {}
pub trait INSCachedImageRep: Sized + std::ops::Deref {
    unsafe fn initWithWindow_rect_(&self, win: NSWindow, rect: NSRect) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWindow : win, rect : rect)
    }
    unsafe fn initWithSize_depth_separate_alpha_(
        &self,
        size: NSSize,
        depth: NSWindowDepth,
        flag: BOOL,
        alpha: BOOL,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSize : size, depth : depth, separate : flag, alpha : alpha)
    }
    unsafe fn window(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, window)
    }
    unsafe fn rect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rect)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCIImageRep(pub id);
impl std::ops::Deref for NSCIImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCIImageRep {}
impl NSCIImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCIImageRep").unwrap(), alloc) })
    }
}
impl INSImageRep for NSCIImageRep {}
impl PNSCopying for NSCIImageRep {}
impl PNSCoding for NSCIImageRep {}
impl std::convert::TryFrom<NSImageRep> for NSCIImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSCIImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCIImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSCIImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSCIImageRep")
        }
    }
}
impl INSObject for NSCIImageRep {}
impl PNSObject for NSCIImageRep {}
impl INSCIImageRep for NSCIImageRep {}
pub trait INSCIImageRep: Sized + std::ops::Deref {
    unsafe fn initWithCIImage_(&self, image: CIImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCIImage : image)
    }
    unsafe fn CIImage(&self) -> CIImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CIImage)
    }
    unsafe fn imageRepWithCIImage_(image: CIImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCIImageRep").unwrap(), imageRepWithCIImage : image)
    }
}
pub type NSColorPanelMode = NSInteger;
pub type NSColorPanelOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorPanel(pub id);
impl std::ops::Deref for NSColorPanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorPanel {}
impl NSColorPanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap(), alloc) })
    }
}
impl INSPanel for NSColorPanel {}
impl std::convert::TryFrom<NSPanel> for NSColorPanel {
    type Error = &'static str;
    fn try_from(parent: NSPanel) -> Result<NSColorPanel, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap()) };
        if is_kind_of {
            Ok(NSColorPanel(parent.0))
        } else {
            Err("This NSPanel cannot be downcasted to NSColorPanel")
        }
    }
}
impl INSWindow for NSColorPanel {}
impl PNSAnimatablePropertyContainer for NSColorPanel {}
impl PNSMenuItemValidation for NSColorPanel {}
impl PNSUserInterfaceValidations for NSColorPanel {}
impl PNSUserInterfaceItemIdentification for NSColorPanel {}
impl PNSAppearanceCustomization for NSColorPanel {}
impl PNSAccessibilityElement for NSColorPanel {}
impl PNSAccessibility for NSColorPanel {}
impl INSResponder for NSColorPanel {}
impl PNSCoding for NSColorPanel {}
impl INSObject for NSColorPanel {}
impl PNSObject for NSColorPanel {}
impl INSColorPanel for NSColorPanel {}
pub trait INSColorPanel: Sized + std::ops::Deref {
    unsafe fn setAction_(&self, selector: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : selector)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn attachColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachColorList : colorList)
    }
    unsafe fn detachColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detachColorList : colorList)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
    unsafe fn isContinuous(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isContinuous)
    }
    unsafe fn setContinuous_(&self, continuous: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContinuous : continuous)
    }
    unsafe fn showsAlpha(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsAlpha)
    }
    unsafe fn setShowsAlpha_(&self, showsAlpha: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsAlpha : showsAlpha)
    }
    unsafe fn mode(&self) -> NSColorPanelMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mode)
    }
    unsafe fn setMode_(&self, mode: NSColorPanelMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMode : mode)
    }
    unsafe fn color(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, color)
    }
    unsafe fn setColor_(&self, color: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color)
    }
    unsafe fn alpha(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alpha)
    }
    unsafe fn maximumLinearExposure(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumLinearExposure)
    }
    unsafe fn setMaximumLinearExposure_(&self, maximumLinearExposure: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumLinearExposure : maximumLinearExposure)
    }
    unsafe fn dragColor_withEvent_fromView_(
        color: NSColor,
        event: NSEvent,
        sourceView: NSView,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap(), dragColor : color, withEvent : event, fromView : sourceView)
    }
    unsafe fn setPickerMask_(mask: NSColorPanelOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap(), setPickerMask : mask)
    }
    unsafe fn setPickerMode_(mode: NSColorPanelMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap(), setPickerMode : mode)
    }
    unsafe fn sharedColorPanel() -> NSColorPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap(), sharedColorPanel)
    }
    unsafe fn sharedColorPanelExists() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPanel").unwrap(), sharedColorPanelExists)
    }
}
impl NSApplication_NSColorPanel for NSApplication {}
pub trait PNSColorChanging: Sized + std::ops::Deref {
    unsafe fn changeColor_(&self, sender: NSColorPanel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeColor : sender)
    }
}
pub trait PNSColorPickingDefault: Sized + std::ops::Deref {
    unsafe fn initWithPickerMask_colorPanel_(
        &self,
        mask: NSUInteger,
        owningColorPanel: NSColorPanel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPickerMask : mask, colorPanel : owningColorPanel)
    }
    unsafe fn provideNewButtonImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, provideNewButtonImage)
    }
    unsafe fn insertNewButtonImage_in_(&self, newButtonImage: NSImage, buttonCell: NSButtonCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertNewButtonImage : newButtonImage, r#in : buttonCell)
    }
    unsafe fn viewSizeChanged_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewSizeChanged : sender)
    }
    unsafe fn alphaControlAddedOrRemoved_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alphaControlAddedOrRemoved : sender)
    }
    unsafe fn attachColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachColorList : colorList)
    }
    unsafe fn detachColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detachColorList : colorList)
    }
    unsafe fn setMode_(&self, mode: NSColorPanelMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMode : mode)
    }
    unsafe fn buttonToolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonToolTip)
    }
    unsafe fn minContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minContentSize)
    }
}
pub trait PNSColorPickingCustom: Sized + std::ops::Deref {
    unsafe fn supportsMode_(&self, mode: NSColorPanelMode) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, supportsMode : mode)
    }
    unsafe fn currentMode(&self) -> NSColorPanelMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentMode)
    }
    unsafe fn provideNewView_(&self, initialRequest: BOOL) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, provideNewView : initialRequest)
    }
    unsafe fn setColor_(&self, newColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : newColor)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorPicker(pub id);
impl std::ops::Deref for NSColorPicker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorPicker {}
impl NSColorPicker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPicker").unwrap(), alloc) })
    }
}
impl PNSColorPickingDefault for NSColorPicker {}
impl INSObject for NSColorPicker {}
impl PNSObject for NSColorPicker {}
impl std::convert::TryFrom<NSObject> for NSColorPicker {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSColorPicker, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorPicker").unwrap()) };
        if is_kind_of {
            Ok(NSColorPicker(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSColorPicker")
        }
    }
}
impl INSColorPicker for NSColorPicker {}
pub trait INSColorPicker: Sized + std::ops::Deref {
    unsafe fn initWithPickerMask_colorPanel_(
        &self,
        mask: NSUInteger,
        owningColorPanel: NSColorPanel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPickerMask : mask, colorPanel : owningColorPanel)
    }
    unsafe fn insertNewButtonImage_in_(&self, newButtonImage: NSImage, buttonCell: NSButtonCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertNewButtonImage : newButtonImage, r#in : buttonCell)
    }
    unsafe fn viewSizeChanged_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewSizeChanged : sender)
    }
    unsafe fn attachColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachColorList : colorList)
    }
    unsafe fn detachColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detachColorList : colorList)
    }
    unsafe fn setMode_(&self, mode: NSColorPanelMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMode : mode)
    }
    unsafe fn colorPanel(&self) -> NSColorPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorPanel)
    }
    unsafe fn provideNewButtonImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, provideNewButtonImage)
    }
    unsafe fn buttonToolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonToolTip)
    }
    unsafe fn minContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minContentSize)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorPickerTouchBarItem(pub id);
impl std::ops::Deref for NSColorPickerTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorPickerTouchBarItem {}
impl NSColorPickerTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPickerTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSColorPickerTouchBarItem {}
impl PNSCoding for NSColorPickerTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSColorPickerTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSColorPickerTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorPickerTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSColorPickerTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSColorPickerTouchBarItem")
        }
    }
}
impl INSObject for NSColorPickerTouchBarItem {}
impl PNSObject for NSColorPickerTouchBarItem {}
impl INSColorPickerTouchBarItem for NSColorPickerTouchBarItem {}
pub trait INSColorPickerTouchBarItem: Sized + std::ops::Deref {
    unsafe fn color(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, color)
    }
    unsafe fn setColor_(&self, color: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color)
    }
    unsafe fn showsAlpha(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsAlpha)
    }
    unsafe fn setShowsAlpha_(&self, showsAlpha: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsAlpha : showsAlpha)
    }
    unsafe fn allowedColorSpaces(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedColorSpaces)
    }
    unsafe fn setAllowedColorSpaces_(&self, allowedColorSpaces: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedColorSpaces : allowedColorSpaces)
    }
    unsafe fn colorList(&self) -> NSColorList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorList)
    }
    unsafe fn setColorList_(&self, colorList: NSColorList)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColorList : colorList)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn colorPickerWithIdentifier_(identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPickerTouchBarItem").unwrap(), colorPickerWithIdentifier : identifier)
    }
    unsafe fn textColorPickerWithIdentifier_(identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPickerTouchBarItem").unwrap(), textColorPickerWithIdentifier : identifier)
    }
    unsafe fn strokeColorPickerWithIdentifier_(identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPickerTouchBarItem").unwrap(), strokeColorPickerWithIdentifier : identifier)
    }
    unsafe fn colorPickerWithIdentifier_buttonImage_(
        identifier: NSString,
        image: NSImage,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorPickerTouchBarItem").unwrap(), colorPickerWithIdentifier : identifier, buttonImage : image)
    }
}
pub type NSColorWellStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSColorWell(pub id);
impl std::ops::Deref for NSColorWell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSColorWell {}
impl NSColorWell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorWell").unwrap(), alloc) })
    }
}
impl INSControl for NSColorWell {}
impl std::convert::TryFrom<NSControl> for NSColorWell {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSColorWell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSColorWell").unwrap()) };
        if is_kind_of {
            Ok(NSColorWell(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSColorWell")
        }
    }
}
impl INSView for NSColorWell {}
impl PNSAnimatablePropertyContainer for NSColorWell {}
impl PNSUserInterfaceItemIdentification for NSColorWell {}
impl PNSDraggingDestination for NSColorWell {}
impl PNSAppearanceCustomization for NSColorWell {}
impl PNSAccessibilityElement for NSColorWell {}
impl PNSAccessibility for NSColorWell {}
impl INSResponder for NSColorWell {}
impl PNSCoding for NSColorWell {}
impl INSObject for NSColorWell {}
impl PNSObject for NSColorWell {}
impl INSColorWell for NSColorWell {}
pub trait INSColorWell: Sized + std::ops::Deref {
    unsafe fn deactivate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deactivate)
    }
    unsafe fn activate_(&self, exclusive: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activate : exclusive)
    }
    unsafe fn drawWellInside_(&self, insideRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawWellInside : insideRect)
    }
    unsafe fn takeColorFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeColorFrom : sender)
    }
    unsafe fn isActive(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isActive)
    }
    unsafe fn isBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBordered)
    }
    unsafe fn setBordered_(&self, bordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : bordered)
    }
    unsafe fn color(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, color)
    }
    unsafe fn setColor_(&self, color: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color)
    }
    unsafe fn colorWellStyle(&self) -> NSColorWellStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorWellStyle)
    }
    unsafe fn setColorWellStyle_(&self, colorWellStyle: NSColorWellStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColorWellStyle : colorWellStyle)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn pulldownTarget(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pulldownTarget)
    }
    unsafe fn setPulldownTarget_(&self, pulldownTarget: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPulldownTarget : pulldownTarget)
    }
    unsafe fn pulldownAction(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pulldownAction)
    }
    unsafe fn setPulldownAction_(&self, pulldownAction: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPulldownAction : pulldownAction)
    }
    unsafe fn supportsAlpha(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supportsAlpha)
    }
    unsafe fn setSupportsAlpha_(&self, supportsAlpha: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSupportsAlpha : supportsAlpha)
    }
    unsafe fn maximumLinearExposure(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumLinearExposure)
    }
    unsafe fn setMaximumLinearExposure_(&self, maximumLinearExposure: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumLinearExposure : maximumLinearExposure)
    }
    unsafe fn colorWellWithStyle_(style: NSColorWellStyle) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSColorWell").unwrap(), colorWellWithStyle : style)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCursor(pub id);
impl std::ops::Deref for NSCursor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCursor {}
impl NSCursor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSCursor {}
impl INSObject for NSCursor {}
impl PNSObject for NSCursor {}
impl std::convert::TryFrom<NSObject> for NSCursor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSCursor, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCursor").unwrap()) };
        if is_kind_of {
            Ok(NSCursor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSCursor")
        }
    }
}
impl INSCursor for NSCursor {}
pub trait INSCursor: Sized + std::ops::Deref {
    unsafe fn initWithImage_hotSpot_(&self, newImage: NSImage, point: NSPoint) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithImage : newImage, hotSpot : point)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn pop(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pop)
    }
    unsafe fn push(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, push)
    }
    unsafe fn set(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, set)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn hotSpot(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hotSpot)
    }
    unsafe fn hide()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), hide)
    }
    unsafe fn unhide()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), unhide)
    }
    unsafe fn setHiddenUntilMouseMoves_(flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), setHiddenUntilMouseMoves : flag)
    }
    unsafe fn class_pop()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), pop)
    }
    unsafe fn columnResizeCursorInDirections_(directions: NSHorizontalDirections) -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), columnResizeCursorInDirections : directions)
    }
    unsafe fn rowResizeCursorInDirections_(directions: NSVerticalDirections) -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), rowResizeCursorInDirections : directions)
    }
    unsafe fn frameResizeCursorFromPosition_inDirections_(
        position: NSCursorFrameResizePosition,
        directions: NSCursorFrameResizeDirections,
    ) -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), frameResizeCursorFromPosition : position, inDirections : directions)
    }
    unsafe fn currentCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), currentCursor)
    }
    unsafe fn arrowCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), arrowCursor)
    }
    unsafe fn crosshairCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), crosshairCursor)
    }
    unsafe fn disappearingItemCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), disappearingItemCursor)
    }
    unsafe fn operationNotAllowedCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), operationNotAllowedCursor)
    }
    unsafe fn dragLinkCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), dragLinkCursor)
    }
    unsafe fn dragCopyCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), dragCopyCursor)
    }
    unsafe fn contextualMenuCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), contextualMenuCursor)
    }
    unsafe fn pointingHandCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), pointingHandCursor)
    }
    unsafe fn closedHandCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), closedHandCursor)
    }
    unsafe fn openHandCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), openHandCursor)
    }
    unsafe fn IBeamCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), IBeamCursor)
    }
    unsafe fn IBeamCursorForVerticalLayout() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), IBeamCursorForVerticalLayout)
    }
    unsafe fn zoomInCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), zoomInCursor)
    }
    unsafe fn zoomOutCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), zoomOutCursor)
    }
    unsafe fn columnResizeCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), columnResizeCursor)
    }
    unsafe fn rowResizeCursor() -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSCursor").unwrap(), rowResizeCursor)
    }
}
pub type NSCursorFrameResizePosition = NSUInteger;
pub type NSCursorFrameResizeDirections = NSUInteger;
impl NSCursor_Deprecated for NSCursor {}
impl NSCursor_NSDeprecated for NSCursor {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCustomImageRep(pub id);
impl std::ops::Deref for NSCustomImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCustomImageRep {}
impl NSCustomImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCustomImageRep").unwrap(), alloc) })
    }
}
impl INSImageRep for NSCustomImageRep {}
impl PNSCopying for NSCustomImageRep {}
impl PNSCoding for NSCustomImageRep {}
impl std::convert::TryFrom<NSImageRep> for NSCustomImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSCustomImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCustomImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSCustomImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSCustomImageRep")
        }
    }
}
impl INSObject for NSCustomImageRep {}
impl PNSObject for NSCustomImageRep {}
impl INSCustomImageRep for NSCustomImageRep {}
pub trait INSCustomImageRep: Sized + std::ops::Deref {
    unsafe fn initWithSize_flipped_drawingHandler_(
        &self,
        size: NSSize,
        drawingHandlerShouldBeCalledWithFlippedContext: BOOL,
        drawingHandler: *mut ::std::os::raw::c_void,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSize : size, flipped : drawingHandlerShouldBeCalledWithFlippedContext, drawingHandler : drawingHandler)
    }
    unsafe fn initWithDrawSelector_delegate_(
        &self,
        selector: objc2::runtime::Sel,
        delegate: id,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDrawSelector : selector, delegate : delegate)
    }
    unsafe fn drawingHandler(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawingHandler)
    }
    unsafe fn drawSelector(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawSelector)
    }
    unsafe fn delegate(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSCustomTouchBarItem(pub id);
impl std::ops::Deref for NSCustomTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSCustomTouchBarItem {}
impl NSCustomTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSCustomTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSCustomTouchBarItem {}
impl PNSCoding for NSCustomTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSCustomTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSCustomTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSCustomTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSCustomTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSCustomTouchBarItem")
        }
    }
}
impl INSObject for NSCustomTouchBarItem {}
impl PNSObject for NSCustomTouchBarItem {}
impl INSCustomTouchBarItem for NSCustomTouchBarItem {}
pub trait INSCustomTouchBarItem: Sized + std::ops::Deref {
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn viewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewController)
    }
    unsafe fn setViewController_(&self, viewController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setViewController : viewController)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDocumentController(pub id);
impl std::ops::Deref for NSDocumentController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDocumentController {}
impl NSDocumentController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocumentController").unwrap(), alloc) })
    }
}
impl PNSCoding for NSDocumentController {}
impl PNSMenuItemValidation for NSDocumentController {}
impl PNSUserInterfaceValidations for NSDocumentController {}
impl INSObject for NSDocumentController {}
impl PNSObject for NSDocumentController {}
impl std::convert::TryFrom<NSObject> for NSDocumentController {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDocumentController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDocumentController").unwrap()) };
        if is_kind_of {
            Ok(NSDocumentController(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDocumentController")
        }
    }
}
impl INSDocumentController for NSDocumentController {}
pub trait INSDocumentController: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn documentForURL_(&self, url: NSURL) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, documentForURL : url)
    }
    unsafe fn documentForWindow_(&self, window: NSWindow) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, documentForWindow : window)
    }
    unsafe fn addDocument_(&self, document: NSDocument)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addDocument : document)
    }
    unsafe fn removeDocument_(&self, document: NSDocument)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeDocument : document)
    }
    unsafe fn newDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, newDocument : sender)
    }
    unsafe fn openUntitledDocumentAndDisplay_error_(
        &self,
        displayDocument: BOOL,
        outError: *mut NSError,
    ) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openUntitledDocumentAndDisplay : displayDocument, error : outError)
    }
    unsafe fn makeUntitledDocumentOfType_error_(
        &self,
        typeName: NSString,
        outError: *mut NSError,
    ) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeUntitledDocumentOfType : typeName, error : outError)
    }
    unsafe fn openDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openDocument : sender)
    }
    unsafe fn URLsFromRunningOpenPanel(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URLsFromRunningOpenPanel)
    }
    unsafe fn runModalOpenPanel_forTypes_(
        &self,
        openPanel: NSOpenPanel,
        types: NSArray,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalOpenPanel : openPanel, forTypes : types)
    }
    unsafe fn beginOpenPanelWithCompletionHandler_(
        &self,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginOpenPanelWithCompletionHandler : completionHandler)
    }
    unsafe fn beginOpenPanel_forTypes_completionHandler_(
        &self,
        openPanel: NSOpenPanel,
        inTypes: NSArray,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginOpenPanel : openPanel, forTypes : inTypes, completionHandler : completionHandler)
    }
    unsafe fn openDocumentWithContentsOfURL_display_completionHandler_(
        &self,
        url: NSURL,
        displayDocument: BOOL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openDocumentWithContentsOfURL : url, display : displayDocument, completionHandler : completionHandler)
    }
    unsafe fn makeDocumentWithContentsOfURL_ofType_error_(
        &self,
        url: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeDocumentWithContentsOfURL : url, ofType : typeName, error : outError)
    }
    unsafe fn reopenDocumentForURL_withContentsOfURL_display_completionHandler_(
        &self,
        urlOrNil: NSURL,
        contentsURL: NSURL,
        displayDocument: BOOL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reopenDocumentForURL : urlOrNil, withContentsOfURL : contentsURL, display : displayDocument, completionHandler : completionHandler)
    }
    unsafe fn makeDocumentForURL_withContentsOfURL_ofType_error_(
        &self,
        urlOrNil: NSURL,
        contentsURL: NSURL,
        typeName: NSString,
        outError: *mut NSError,
    ) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeDocumentForURL : urlOrNil, withContentsOfURL : contentsURL, ofType : typeName, error : outError)
    }
    unsafe fn saveAllDocuments_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, saveAllDocuments : sender)
    }
    unsafe fn reviewUnsavedDocumentsWithAlertTitle_cancellable_delegate_didReviewAllSelector_contextInfo_(
        &self,
        title: NSString,
        cancellable: BOOL,
        delegate: id,
        didReviewAllSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reviewUnsavedDocumentsWithAlertTitle : title, cancellable : cancellable, delegate : delegate, didReviewAllSelector : didReviewAllSelector, contextInfo : contextInfo)
    }
    unsafe fn closeAllDocumentsWithDelegate_didCloseAllSelector_contextInfo_(
        &self,
        delegate: id,
        didCloseAllSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, closeAllDocumentsWithDelegate : delegate, didCloseAllSelector : didCloseAllSelector, contextInfo : contextInfo)
    }
    unsafe fn duplicateDocumentWithContentsOfURL_copying_displayName_error_(
        &self,
        url: NSURL,
        duplicateByCopying: BOOL,
        displayNameOrNil: NSString,
        outError: *mut NSError,
    ) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, duplicateDocumentWithContentsOfURL : url, copying : duplicateByCopying, displayName : displayNameOrNil, error : outError)
    }
    unsafe fn standardShareMenuItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, standardShareMenuItem)
    }
    unsafe fn presentError_modalForWindow_delegate_didPresentSelector_contextInfo_(
        &self,
        error: NSError,
        window: NSWindow,
        delegate: id,
        didPresentSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentError : error, modalForWindow : window, delegate : delegate, didPresentSelector : didPresentSelector, contextInfo : contextInfo)
    }
    unsafe fn presentError_(&self, error: NSError) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, presentError : error)
    }
    unsafe fn willPresentError_(&self, error: NSError) -> NSError
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, willPresentError : error)
    }
    unsafe fn clearRecentDocuments_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, clearRecentDocuments : sender)
    }
    unsafe fn noteNewRecentDocument_(&self, document: NSDocument)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noteNewRecentDocument : document)
    }
    unsafe fn noteNewRecentDocumentURL_(&self, url: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noteNewRecentDocumentURL : url)
    }
    unsafe fn typeForContentsOfURL_error_(&self, url: NSURL, outError: *mut NSError) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, typeForContentsOfURL : url, error : outError)
    }
    unsafe fn documentClassForType_(&self, typeName: NSString) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, documentClassForType : typeName)
    }
    unsafe fn displayNameForType_(&self, typeName: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayNameForType : typeName)
    }
    unsafe fn validateUserInterfaceItem_(&self, item: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateUserInterfaceItem : item)
    }
    unsafe fn documents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documents)
    }
    unsafe fn currentDocument(&self) -> NSDocument
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentDocument)
    }
    unsafe fn currentDirectory(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentDirectory)
    }
    unsafe fn autosavingDelay(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosavingDelay)
    }
    unsafe fn setAutosavingDelay_(&self, autosavingDelay: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosavingDelay : autosavingDelay)
    }
    unsafe fn hasEditedDocuments(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasEditedDocuments)
    }
    unsafe fn allowsAutomaticShareMenu(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsAutomaticShareMenu)
    }
    unsafe fn maximumRecentDocumentCount(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumRecentDocumentCount)
    }
    unsafe fn recentDocumentURLs(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recentDocumentURLs)
    }
    unsafe fn defaultType(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultType)
    }
    unsafe fn documentClassNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentClassNames)
    }
    unsafe fn sharedDocumentController() -> NSDocumentController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDocumentController").unwrap(), sharedDocumentController)
    }
}
impl NSDocumentController_NSDeprecated for NSDocumentController {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDraggingImageComponent(pub id);
impl std::ops::Deref for NSDraggingImageComponent {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDraggingImageComponent {}
impl NSDraggingImageComponent {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDraggingImageComponent").unwrap(), alloc) })
    }
}
impl INSObject for NSDraggingImageComponent {}
impl PNSObject for NSDraggingImageComponent {}
impl std::convert::TryFrom<NSObject> for NSDraggingImageComponent {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDraggingImageComponent, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDraggingImageComponent").unwrap()) };
        if is_kind_of {
            Ok(NSDraggingImageComponent(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDraggingImageComponent")
        }
    }
}
impl INSDraggingImageComponent for NSDraggingImageComponent {}
pub trait INSDraggingImageComponent: Sized + std::ops::Deref {
    unsafe fn initWithKey_(&self, key: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithKey : key)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn key(&self) -> NSDraggingImageComponentKey
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, key)
    }
    unsafe fn setKey_(&self, key: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKey : key)
    }
    unsafe fn contents(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contents)
    }
    unsafe fn setContents_(&self, contents: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContents : contents)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn setFrame_(&self, frame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frame)
    }
    unsafe fn draggingImageComponentWithKey_(key: NSString) -> NSDraggingImageComponent
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSDraggingImageComponent").unwrap(), draggingImageComponentWithKey : key)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDraggingItem(pub id);
impl std::ops::Deref for NSDraggingItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDraggingItem {}
impl NSDraggingItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDraggingItem").unwrap(), alloc) })
    }
}
impl INSObject for NSDraggingItem {}
impl PNSObject for NSDraggingItem {}
impl std::convert::TryFrom<NSObject> for NSDraggingItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDraggingItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDraggingItem").unwrap()) };
        if is_kind_of {
            Ok(NSDraggingItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDraggingItem")
        }
    }
}
impl INSDraggingItem for NSDraggingItem {}
pub trait INSDraggingItem: Sized + std::ops::Deref {
    unsafe fn initWithPasteboardWriter_(&self, pasteboardWriter: *mut u64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPasteboardWriter : pasteboardWriter)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn setDraggingFrame_contents_(&self, frame: NSRect, contents: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingFrame : frame, contents : contents)
    }
    unsafe fn item(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, item)
    }
    unsafe fn draggingFrame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingFrame)
    }
    unsafe fn setDraggingFrame_(&self, draggingFrame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingFrame : draggingFrame)
    }
    unsafe fn imageComponentsProvider(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageComponentsProvider)
    }
    unsafe fn setImageComponentsProvider_(
        &self,
        imageComponentsProvider: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageComponentsProvider : imageComponentsProvider)
    }
    unsafe fn imageComponents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageComponents)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDraggingSession(pub id);
impl std::ops::Deref for NSDraggingSession {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDraggingSession {}
impl NSDraggingSession {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDraggingSession").unwrap(), alloc) })
    }
}
impl INSObject for NSDraggingSession {}
impl PNSObject for NSDraggingSession {}
impl std::convert::TryFrom<NSObject> for NSDraggingSession {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDraggingSession, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDraggingSession").unwrap()) };
        if is_kind_of {
            Ok(NSDraggingSession(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDraggingSession")
        }
    }
}
impl INSDraggingSession for NSDraggingSession {}
pub trait INSDraggingSession: Sized + std::ops::Deref {
    unsafe fn enumerateDraggingItemsWithOptions_forView_classes_searchOptions_usingBlock_(
        &self,
        enumOpts: NSDraggingItemEnumerationOptions,
        view: NSView,
        classArray: NSArray,
        searchOptions: NSDictionary,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateDraggingItemsWithOptions : enumOpts, forView : view, classes : classArray, searchOptions : searchOptions, usingBlock : block)
    }
    unsafe fn draggingFormation(&self) -> NSDraggingFormation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingFormation)
    }
    unsafe fn setDraggingFormation_(&self, draggingFormation: NSDraggingFormation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingFormation : draggingFormation)
    }
    unsafe fn animatesToStartingPositionsOnCancelOrFail(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animatesToStartingPositionsOnCancelOrFail)
    }
    unsafe fn setAnimatesToStartingPositionsOnCancelOrFail_(
        &self,
        animatesToStartingPositionsOnCancelOrFail: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimatesToStartingPositionsOnCancelOrFail : animatesToStartingPositionsOnCancelOrFail)
    }
    unsafe fn draggingLeaderIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingLeaderIndex)
    }
    unsafe fn setDraggingLeaderIndex_(&self, draggingLeaderIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingLeaderIndex : draggingLeaderIndex)
    }
    unsafe fn draggingPasteboard(&self) -> NSPasteboard
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingPasteboard)
    }
    unsafe fn draggingSequenceNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingSequenceNumber)
    }
    unsafe fn draggingLocation(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingLocation)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFilePromiseProvider(pub id);
impl std::ops::Deref for NSFilePromiseProvider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFilePromiseProvider {}
impl NSFilePromiseProvider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFilePromiseProvider").unwrap(), alloc) })
    }
}
impl PNSPasteboardWriting for NSFilePromiseProvider {}
impl INSObject for NSFilePromiseProvider {}
impl PNSObject for NSFilePromiseProvider {}
impl std::convert::TryFrom<NSObject> for NSFilePromiseProvider {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFilePromiseProvider, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFilePromiseProvider").unwrap()) };
        if is_kind_of {
            Ok(NSFilePromiseProvider(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFilePromiseProvider")
        }
    }
}
impl INSFilePromiseProvider for NSFilePromiseProvider {}
pub trait INSFilePromiseProvider: Sized + std::ops::Deref {
    unsafe fn initWithFileType_delegate_(
        &self,
        fileType: NSString,
        delegate: *mut u64,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFileType : fileType, delegate : delegate)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn fileType(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileType)
    }
    unsafe fn setFileType_(&self, fileType: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFileType : fileType)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn userInfo(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInfo)
    }
    unsafe fn setUserInfo_(&self, userInfo: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserInfo : userInfo)
    }
}
pub trait PNSFilePromiseProviderDelegate: Sized + std::ops::Deref {
    unsafe fn filePromiseProvider_fileNameForType_(
        &self,
        filePromiseProvider: NSFilePromiseProvider,
        fileType: NSString,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, filePromiseProvider : filePromiseProvider, fileNameForType : fileType)
    }
    unsafe fn filePromiseProvider_writePromiseToURL_completionHandler_(
        &self,
        filePromiseProvider: NSFilePromiseProvider,
        url: NSURL,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, filePromiseProvider : filePromiseProvider, writePromiseToURL : url, completionHandler : completionHandler)
    }
    unsafe fn operationQueueForFilePromiseProvider_(
        &self,
        filePromiseProvider: NSFilePromiseProvider,
    ) -> NSOperationQueue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, operationQueueForFilePromiseProvider : filePromiseProvider)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSFilePromiseReceiver(pub id);
impl std::ops::Deref for NSFilePromiseReceiver {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSFilePromiseReceiver {}
impl NSFilePromiseReceiver {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSFilePromiseReceiver").unwrap(), alloc) })
    }
}
impl PNSPasteboardReading for NSFilePromiseReceiver {}
impl INSObject for NSFilePromiseReceiver {}
impl PNSObject for NSFilePromiseReceiver {}
impl std::convert::TryFrom<NSObject> for NSFilePromiseReceiver {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSFilePromiseReceiver, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSFilePromiseReceiver").unwrap()) };
        if is_kind_of {
            Ok(NSFilePromiseReceiver(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSFilePromiseReceiver")
        }
    }
}
impl INSFilePromiseReceiver for NSFilePromiseReceiver {}
pub trait INSFilePromiseReceiver: Sized + std::ops::Deref {
    unsafe fn receivePromisedFilesAtDestination_options_operationQueue_reader_(
        &self,
        destinationDir: NSURL,
        options: NSDictionary,
        operationQueue: NSOperationQueue,
        reader: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, receivePromisedFilesAtDestination : destinationDir, options : options, operationQueue : operationQueue, reader : reader)
    }
    unsafe fn fileTypes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileTypes)
    }
    unsafe fn fileNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fileNames)
    }
    unsafe fn readableDraggedTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSFilePromiseReceiver").unwrap(), readableDraggedTypes)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSEPSImageRep(pub id);
impl std::ops::Deref for NSEPSImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSEPSImageRep {}
impl NSEPSImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSEPSImageRep").unwrap(), alloc) })
    }
}
impl INSImageRep for NSEPSImageRep {}
impl PNSCopying for NSEPSImageRep {}
impl PNSCoding for NSEPSImageRep {}
impl std::convert::TryFrom<NSImageRep> for NSEPSImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSEPSImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSEPSImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSEPSImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSEPSImageRep")
        }
    }
}
impl INSObject for NSEPSImageRep {}
impl PNSObject for NSEPSImageRep {}
impl INSEPSImageRep for NSEPSImageRep {}
pub trait INSEPSImageRep: Sized + std::ops::Deref {
    unsafe fn initWithData_(&self, epsData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : epsData)
    }
    unsafe fn prepareGState(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prepareGState)
    }
    unsafe fn boundingBox(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boundingBox)
    }
    unsafe fn EPSRepresentation(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, EPSRepresentation)
    }
    unsafe fn imageRepWithData_(epsData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSEPSImageRep").unwrap(), imageRepWithData : epsData)
    }
}
pub type NSGradientDrawingOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGradient(pub id);
impl std::ops::Deref for NSGradient {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGradient {}
impl NSGradient {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGradient").unwrap(), alloc) })
    }
}
impl PNSCopying for NSGradient {}
impl PNSSecureCoding for NSGradient {}
impl INSObject for NSGradient {}
impl PNSObject for NSGradient {}
impl std::convert::TryFrom<NSObject> for NSGradient {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGradient, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGradient").unwrap()) };
        if is_kind_of {
            Ok(NSGradient(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGradient")
        }
    }
}
impl INSGradient for NSGradient {}
pub trait INSGradient: Sized + std::ops::Deref {
    unsafe fn initWithStartingColor_endingColor_(
        &self,
        startingColor: NSColor,
        endingColor: NSColor,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithStartingColor : startingColor, endingColor : endingColor)
    }
    unsafe fn initWithColors_(&self, colorArray: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithColors : colorArray)
    }
    unsafe fn initWithColorsAndLocations_(&self, firstColor: NSColor) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithColorsAndLocations : firstColor)
    }
    unsafe fn initWithColors_atLocations_colorSpace_(
        &self,
        colorArray: NSArray,
        locations: *const CGFloat,
        colorSpace: NSColorSpace,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithColors : colorArray, atLocations : locations, colorSpace : colorSpace)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn drawFromPoint_toPoint_options_(
        &self,
        startingPoint: NSPoint,
        endingPoint: NSPoint,
        options: NSGradientDrawingOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawFromPoint : startingPoint, toPoint : endingPoint, options : options)
    }
    unsafe fn drawInRect_angle_(&self, rect: NSRect, angle: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : rect, angle : angle)
    }
    unsafe fn drawInBezierPath_angle_(&self, path: NSBezierPath, angle: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInBezierPath : path, angle : angle)
    }
    unsafe fn drawFromCenter_radius_toCenter_radius_options_(
        &self,
        startCenter: NSPoint,
        startRadius: CGFloat,
        endCenter: NSPoint,
        endRadius: CGFloat,
        options: NSGradientDrawingOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawFromCenter : startCenter, radius : startRadius, toCenter : endCenter, radius : endRadius, options : options)
    }
    unsafe fn drawInRect_relativeCenterPosition_(
        &self,
        rect: NSRect,
        relativeCenterPosition: NSPoint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : rect, relativeCenterPosition : relativeCenterPosition)
    }
    unsafe fn drawInBezierPath_relativeCenterPosition_(
        &self,
        path: NSBezierPath,
        relativeCenterPosition: NSPoint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInBezierPath : path, relativeCenterPosition : relativeCenterPosition)
    }
    unsafe fn getColor_location_atIndex_(
        &self,
        color: *mut NSColor,
        location: *mut CGFloat,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getColor : color, location : location, atIndex : index)
    }
    unsafe fn interpolatedColorAtLocation_(&self, location: CGFloat) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, interpolatedColorAtLocation : location)
    }
    unsafe fn colorSpace(&self) -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpace)
    }
    unsafe fn numberOfColorStops(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColorStops)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGroupTouchBarItem(pub id);
impl std::ops::Deref for NSGroupTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGroupTouchBarItem {}
impl NSGroupTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGroupTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSGroupTouchBarItem {}
impl PNSCoding for NSGroupTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSGroupTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSGroupTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGroupTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSGroupTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSGroupTouchBarItem")
        }
    }
}
impl INSObject for NSGroupTouchBarItem {}
impl PNSObject for NSGroupTouchBarItem {}
impl INSGroupTouchBarItem for NSGroupTouchBarItem {}
pub trait INSGroupTouchBarItem: Sized + std::ops::Deref {
    unsafe fn groupTouchBar(&self) -> NSTouchBar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupTouchBar)
    }
    unsafe fn setGroupTouchBar_(&self, groupTouchBar: NSTouchBar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGroupTouchBar : groupTouchBar)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
    unsafe fn groupUserInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, groupUserInterfaceLayoutDirection)
    }
    unsafe fn setGroupUserInterfaceLayoutDirection_(
        &self,
        groupUserInterfaceLayoutDirection: NSUserInterfaceLayoutDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGroupUserInterfaceLayoutDirection : groupUserInterfaceLayoutDirection)
    }
    unsafe fn prefersEqualWidths(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prefersEqualWidths)
    }
    unsafe fn setPrefersEqualWidths_(&self, prefersEqualWidths: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrefersEqualWidths : prefersEqualWidths)
    }
    unsafe fn preferredItemWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredItemWidth)
    }
    unsafe fn setPreferredItemWidth_(&self, preferredItemWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredItemWidth : preferredItemWidth)
    }
    unsafe fn effectiveCompressionOptions(&self) -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveCompressionOptions)
    }
    unsafe fn prioritizedCompressionOptions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prioritizedCompressionOptions)
    }
    unsafe fn setPrioritizedCompressionOptions_(&self, prioritizedCompressionOptions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrioritizedCompressionOptions : prioritizedCompressionOptions)
    }
    unsafe fn groupItemWithIdentifier_items_(identifier: NSString, items: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGroupTouchBarItem").unwrap(), groupItemWithIdentifier : identifier, items : items)
    }
    unsafe fn groupItemWithIdentifier_items_allowedCompressionOptions_(
        identifier: NSString,
        items: NSArray,
        allowedCompressionOptions: NSUserInterfaceCompressionOptions,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGroupTouchBarItem").unwrap(), groupItemWithIdentifier : identifier, items : items, allowedCompressionOptions : allowedCompressionOptions)
    }
    unsafe fn alertStyleGroupItemWithIdentifier_(identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGroupTouchBarItem").unwrap(), alertStyleGroupItemWithIdentifier : identifier)
    }
}
pub type NSGestureRecognizerState = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGestureRecognizer(pub id);
impl std::ops::Deref for NSGestureRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGestureRecognizer {}
impl NSGestureRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGestureRecognizer").unwrap(), alloc) })
    }
}
impl PNSCoding for NSGestureRecognizer {}
impl INSObject for NSGestureRecognizer {}
impl PNSObject for NSGestureRecognizer {}
impl std::convert::TryFrom<NSObject> for NSGestureRecognizer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGestureRecognizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGestureRecognizer").unwrap()) };
        if is_kind_of {
            Ok(NSGestureRecognizer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGestureRecognizer")
        }
    }
}
impl INSGestureRecognizer for NSGestureRecognizer {}
pub trait INSGestureRecognizer: Sized + std::ops::Deref {
    unsafe fn initWithTarget_action_(&self, target: id, action: objc2::runtime::Sel) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTarget : target, action : action)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn locationInView_(&self, view: NSView) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, locationInView : view)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn state(&self) -> NSGestureRecognizerState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn pressureConfiguration(&self) -> NSPressureConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pressureConfiguration)
    }
    unsafe fn setPressureConfiguration_(&self, pressureConfiguration: NSPressureConfiguration)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPressureConfiguration : pressureConfiguration)
    }
    unsafe fn delaysPrimaryMouseButtonEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delaysPrimaryMouseButtonEvents)
    }
    unsafe fn setDelaysPrimaryMouseButtonEvents_(&self, delaysPrimaryMouseButtonEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelaysPrimaryMouseButtonEvents : delaysPrimaryMouseButtonEvents)
    }
    unsafe fn delaysSecondaryMouseButtonEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delaysSecondaryMouseButtonEvents)
    }
    unsafe fn setDelaysSecondaryMouseButtonEvents_(&self, delaysSecondaryMouseButtonEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelaysSecondaryMouseButtonEvents : delaysSecondaryMouseButtonEvents)
    }
    unsafe fn delaysOtherMouseButtonEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delaysOtherMouseButtonEvents)
    }
    unsafe fn setDelaysOtherMouseButtonEvents_(&self, delaysOtherMouseButtonEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelaysOtherMouseButtonEvents : delaysOtherMouseButtonEvents)
    }
    unsafe fn delaysKeyEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delaysKeyEvents)
    }
    unsafe fn setDelaysKeyEvents_(&self, delaysKeyEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelaysKeyEvents : delaysKeyEvents)
    }
    unsafe fn delaysMagnificationEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delaysMagnificationEvents)
    }
    unsafe fn setDelaysMagnificationEvents_(&self, delaysMagnificationEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelaysMagnificationEvents : delaysMagnificationEvents)
    }
    unsafe fn delaysRotationEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delaysRotationEvents)
    }
    unsafe fn setDelaysRotationEvents_(&self, delaysRotationEvents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelaysRotationEvents : delaysRotationEvents)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn setName_(&self, name: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setName : name)
    }
    unsafe fn modifierFlags(&self) -> NSEventModifierFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifierFlags)
    }
}
impl NSGestureRecognizer_NSTouchBar for NSGestureRecognizer {}
pub trait PNSGestureRecognizerDelegate: Sized + std::ops::Deref {
    unsafe fn gestureRecognizer_shouldAttemptToRecognizeWithEvent_(
        &self,
        gestureRecognizer: NSGestureRecognizer,
        event: NSEvent,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, gestureRecognizer : gestureRecognizer, shouldAttemptToRecognizeWithEvent : event)
    }
    unsafe fn gestureRecognizerShouldBegin_(&self, gestureRecognizer: NSGestureRecognizer) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, gestureRecognizerShouldBegin : gestureRecognizer)
    }
    unsafe fn gestureRecognizer_shouldRecognizeSimultaneouslyWithGestureRecognizer_(
        &self,
        gestureRecognizer: NSGestureRecognizer,
        otherGestureRecognizer: NSGestureRecognizer,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, gestureRecognizer : gestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer : otherGestureRecognizer)
    }
    unsafe fn gestureRecognizer_shouldRequireFailureOfGestureRecognizer_(
        &self,
        gestureRecognizer: NSGestureRecognizer,
        otherGestureRecognizer: NSGestureRecognizer,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, gestureRecognizer : gestureRecognizer, shouldRequireFailureOfGestureRecognizer : otherGestureRecognizer)
    }
    unsafe fn gestureRecognizer_shouldBeRequiredToFailByGestureRecognizer_(
        &self,
        gestureRecognizer: NSGestureRecognizer,
        otherGestureRecognizer: NSGestureRecognizer,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, gestureRecognizer : gestureRecognizer, shouldBeRequiredToFailByGestureRecognizer : otherGestureRecognizer)
    }
    unsafe fn gestureRecognizer_shouldReceiveTouch_(
        &self,
        gestureRecognizer: NSGestureRecognizer,
        touch: NSTouch,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, gestureRecognizer : gestureRecognizer, shouldReceiveTouch : touch)
    }
}
impl NSGestureRecognizer_NSSubclassUse for NSGestureRecognizer {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSClickGestureRecognizer(pub id);
impl std::ops::Deref for NSClickGestureRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSClickGestureRecognizer {}
impl NSClickGestureRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSClickGestureRecognizer").unwrap(), alloc) })
    }
}
impl PNSCoding for NSClickGestureRecognizer {}
impl INSGestureRecognizer for NSClickGestureRecognizer {}
impl From<NSClickGestureRecognizer> for NSGestureRecognizer {
    fn from(child: NSClickGestureRecognizer) -> NSGestureRecognizer {
        NSGestureRecognizer(child.0)
    }
}
impl std::convert::TryFrom<NSGestureRecognizer> for NSClickGestureRecognizer {
    type Error = &'static str;
    fn try_from(parent: NSGestureRecognizer) -> Result<NSClickGestureRecognizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSClickGestureRecognizer").unwrap()) };
        if is_kind_of {
            Ok(NSClickGestureRecognizer(parent.0))
        } else {
            Err("This NSGestureRecognizer cannot be downcasted to NSClickGestureRecognizer")
        }
    }
}
impl INSObject for NSClickGestureRecognizer {}
impl PNSObject for NSClickGestureRecognizer {}
impl INSClickGestureRecognizer for NSClickGestureRecognizer {}
pub trait INSClickGestureRecognizer: Sized + std::ops::Deref {
    unsafe fn buttonMask(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonMask)
    }
    unsafe fn setButtonMask_(&self, buttonMask: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonMask : buttonMask)
    }
    unsafe fn numberOfClicksRequired(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfClicksRequired)
    }
    unsafe fn setNumberOfClicksRequired_(&self, numberOfClicksRequired: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfClicksRequired : numberOfClicksRequired)
    }
    unsafe fn numberOfTouchesRequired(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfTouchesRequired)
    }
    unsafe fn setNumberOfTouchesRequired_(&self, numberOfTouchesRequired: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfTouchesRequired : numberOfTouchesRequired)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPanGestureRecognizer(pub id);
impl std::ops::Deref for NSPanGestureRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPanGestureRecognizer {}
impl NSPanGestureRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPanGestureRecognizer").unwrap(), alloc) })
    }
}
impl PNSCoding for NSPanGestureRecognizer {}
impl INSGestureRecognizer for NSPanGestureRecognizer {}
impl std::convert::TryFrom<NSGestureRecognizer> for NSPanGestureRecognizer {
    type Error = &'static str;
    fn try_from(parent: NSGestureRecognizer) -> Result<NSPanGestureRecognizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPanGestureRecognizer").unwrap()) };
        if is_kind_of {
            Ok(NSPanGestureRecognizer(parent.0))
        } else {
            Err("This NSGestureRecognizer cannot be downcasted to NSPanGestureRecognizer")
        }
    }
}
impl INSObject for NSPanGestureRecognizer {}
impl PNSObject for NSPanGestureRecognizer {}
impl INSPanGestureRecognizer for NSPanGestureRecognizer {}
pub trait INSPanGestureRecognizer: Sized + std::ops::Deref {
    unsafe fn translationInView_(&self, view: NSView) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, translationInView : view)
    }
    unsafe fn setTranslation_inView_(&self, translation: NSPoint, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTranslation : translation, inView : view)
    }
    unsafe fn velocityInView_(&self, view: NSView) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, velocityInView : view)
    }
    unsafe fn buttonMask(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonMask)
    }
    unsafe fn setButtonMask_(&self, buttonMask: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonMask : buttonMask)
    }
    unsafe fn numberOfTouchesRequired(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfTouchesRequired)
    }
    unsafe fn setNumberOfTouchesRequired_(&self, numberOfTouchesRequired: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfTouchesRequired : numberOfTouchesRequired)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPressGestureRecognizer(pub id);
impl std::ops::Deref for NSPressGestureRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPressGestureRecognizer {}
impl NSPressGestureRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPressGestureRecognizer").unwrap(), alloc) })
    }
}
impl PNSCoding for NSPressGestureRecognizer {}
impl INSGestureRecognizer for NSPressGestureRecognizer {}
impl std::convert::TryFrom<NSGestureRecognizer> for NSPressGestureRecognizer {
    type Error = &'static str;
    fn try_from(parent: NSGestureRecognizer) -> Result<NSPressGestureRecognizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPressGestureRecognizer").unwrap()) };
        if is_kind_of {
            Ok(NSPressGestureRecognizer(parent.0))
        } else {
            Err("This NSGestureRecognizer cannot be downcasted to NSPressGestureRecognizer")
        }
    }
}
impl INSObject for NSPressGestureRecognizer {}
impl PNSObject for NSPressGestureRecognizer {}
impl INSPressGestureRecognizer for NSPressGestureRecognizer {}
pub trait INSPressGestureRecognizer: Sized + std::ops::Deref {
    unsafe fn buttonMask(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonMask)
    }
    unsafe fn setButtonMask_(&self, buttonMask: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonMask : buttonMask)
    }
    unsafe fn minimumPressDuration(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumPressDuration)
    }
    unsafe fn setMinimumPressDuration_(&self, minimumPressDuration: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumPressDuration : minimumPressDuration)
    }
    unsafe fn allowableMovement(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowableMovement)
    }
    unsafe fn setAllowableMovement_(&self, allowableMovement: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowableMovement : allowableMovement)
    }
    unsafe fn numberOfTouchesRequired(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfTouchesRequired)
    }
    unsafe fn setNumberOfTouchesRequired_(&self, numberOfTouchesRequired: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfTouchesRequired : numberOfTouchesRequired)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMagnificationGestureRecognizer(pub id);
impl std::ops::Deref for NSMagnificationGestureRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMagnificationGestureRecognizer {}
impl NSMagnificationGestureRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMagnificationGestureRecognizer").unwrap(), alloc) })
    }
}
impl INSGestureRecognizer for NSMagnificationGestureRecognizer {}
impl PNSCoding for NSMagnificationGestureRecognizer {}
impl std::convert::TryFrom<NSGestureRecognizer> for NSMagnificationGestureRecognizer {
    type Error = &'static str;
    fn try_from(
        parent: NSGestureRecognizer,
    ) -> Result<NSMagnificationGestureRecognizer, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMagnificationGestureRecognizer").unwrap())
        };
        if is_kind_of {
            Ok(NSMagnificationGestureRecognizer(parent.0))
        } else {
            Err("This NSGestureRecognizer cannot be downcasted to NSMagnificationGestureRecognizer")
        }
    }
}
impl INSObject for NSMagnificationGestureRecognizer {}
impl PNSObject for NSMagnificationGestureRecognizer {}
impl INSMagnificationGestureRecognizer for NSMagnificationGestureRecognizer {}
pub trait INSMagnificationGestureRecognizer: Sized + std::ops::Deref {
    unsafe fn magnification(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, magnification)
    }
    unsafe fn setMagnification_(&self, magnification: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMagnification : magnification)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSRotationGestureRecognizer(pub id);
impl std::ops::Deref for NSRotationGestureRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSRotationGestureRecognizer {}
impl NSRotationGestureRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSRotationGestureRecognizer").unwrap(), alloc) })
    }
}
impl INSGestureRecognizer for NSRotationGestureRecognizer {}
impl PNSCoding for NSRotationGestureRecognizer {}
impl std::convert::TryFrom<NSGestureRecognizer> for NSRotationGestureRecognizer {
    type Error = &'static str;
    fn try_from(parent: NSGestureRecognizer) -> Result<NSRotationGestureRecognizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSRotationGestureRecognizer").unwrap()) };
        if is_kind_of {
            Ok(NSRotationGestureRecognizer(parent.0))
        } else {
            Err("This NSGestureRecognizer cannot be downcasted to NSRotationGestureRecognizer")
        }
    }
}
impl INSObject for NSRotationGestureRecognizer {}
impl PNSObject for NSRotationGestureRecognizer {}
impl INSRotationGestureRecognizer for NSRotationGestureRecognizer {}
pub trait INSRotationGestureRecognizer: Sized + std::ops::Deref {
    unsafe fn rotation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rotation)
    }
    unsafe fn setRotation_(&self, rotation: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRotation : rotation)
    }
    unsafe fn rotationInDegrees(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rotationInDegrees)
    }
    unsafe fn setRotationInDegrees_(&self, rotationInDegrees: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRotationInDegrees : rotationInDegrees)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLayoutAnchor(pub id);
impl std::ops::Deref for NSLayoutAnchor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLayoutAnchor {}
impl NSLayoutAnchor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutAnchor").unwrap(), alloc) })
    }
}
impl PNSCopying for NSLayoutAnchor {}
impl PNSCoding for NSLayoutAnchor {}
impl INSObject for NSLayoutAnchor {}
impl PNSObject for NSLayoutAnchor {}
impl std::convert::TryFrom<NSObject> for NSLayoutAnchor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSLayoutAnchor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLayoutAnchor").unwrap()) };
        if is_kind_of {
            Ok(NSLayoutAnchor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSLayoutAnchor")
        }
    }
}
impl<AnchorType: 'static> INSLayoutAnchor<AnchorType> for NSLayoutAnchor {}
pub trait INSLayoutAnchor<AnchorType: 'static>: Sized + std::ops::Deref {
    unsafe fn constraintEqualToAnchor_(&self, anchor: NSLayoutAnchor) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToAnchor : anchor)
    }
    unsafe fn constraintGreaterThanOrEqualToAnchor_(
        &self,
        anchor: NSLayoutAnchor,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToAnchor : anchor)
    }
    unsafe fn constraintLessThanOrEqualToAnchor_(
        &self,
        anchor: NSLayoutAnchor,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToAnchor : anchor)
    }
    unsafe fn constraintEqualToAnchor_constant_(
        &self,
        anchor: NSLayoutAnchor,
        c: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToAnchor : anchor, constant : c)
    }
    unsafe fn constraintGreaterThanOrEqualToAnchor_constant_(
        &self,
        anchor: NSLayoutAnchor,
        c: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToAnchor : anchor, constant : c)
    }
    unsafe fn constraintLessThanOrEqualToAnchor_constant_(
        &self,
        anchor: NSLayoutAnchor,
        c: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToAnchor : anchor, constant : c)
    }
    unsafe fn name(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn item(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, item)
    }
    unsafe fn hasAmbiguousLayout(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasAmbiguousLayout)
    }
    unsafe fn constraintsAffectingLayout(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, constraintsAffectingLayout)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLayoutXAxisAnchor(pub id);
impl std::ops::Deref for NSLayoutXAxisAnchor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLayoutXAxisAnchor {}
impl NSLayoutXAxisAnchor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutXAxisAnchor").unwrap(), alloc) })
    }
}
impl<AnchorType: 'static> INSLayoutAnchor<AnchorType> for NSLayoutXAxisAnchor {}
impl PNSCopying for NSLayoutXAxisAnchor {}
impl PNSCoding for NSLayoutXAxisAnchor {}
impl INSObject for NSLayoutXAxisAnchor {}
impl PNSObject for NSLayoutXAxisAnchor {}
impl std::convert::TryFrom<NSObject> for NSLayoutXAxisAnchor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSLayoutXAxisAnchor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLayoutXAxisAnchor").unwrap()) };
        if is_kind_of {
            Ok(NSLayoutXAxisAnchor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSLayoutXAxisAnchor")
        }
    }
}
impl INSLayoutXAxisAnchor for NSLayoutXAxisAnchor {}
pub trait INSLayoutXAxisAnchor: Sized + std::ops::Deref {
    unsafe fn anchorWithOffsetToAnchor_(
        &self,
        otherAnchor: NSLayoutXAxisAnchor,
    ) -> NSLayoutDimension
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, anchorWithOffsetToAnchor : otherAnchor)
    }
    unsafe fn constraintEqualToSystemSpacingAfterAnchor_multiplier_(
        &self,
        anchor: NSLayoutXAxisAnchor,
        multiplier: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToSystemSpacingAfterAnchor : anchor, multiplier : multiplier)
    }
    unsafe fn constraintGreaterThanOrEqualToSystemSpacingAfterAnchor_multiplier_(
        &self,
        anchor: NSLayoutXAxisAnchor,
        multiplier: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToSystemSpacingAfterAnchor : anchor, multiplier : multiplier)
    }
    unsafe fn constraintLessThanOrEqualToSystemSpacingAfterAnchor_multiplier_(
        &self,
        anchor: NSLayoutXAxisAnchor,
        multiplier: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToSystemSpacingAfterAnchor : anchor, multiplier : multiplier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLayoutYAxisAnchor(pub id);
impl std::ops::Deref for NSLayoutYAxisAnchor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLayoutYAxisAnchor {}
impl NSLayoutYAxisAnchor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutYAxisAnchor").unwrap(), alloc) })
    }
}
impl<AnchorType: 'static> INSLayoutAnchor<AnchorType> for NSLayoutYAxisAnchor {}
impl PNSCopying for NSLayoutYAxisAnchor {}
impl PNSCoding for NSLayoutYAxisAnchor {}
impl INSObject for NSLayoutYAxisAnchor {}
impl PNSObject for NSLayoutYAxisAnchor {}
impl std::convert::TryFrom<NSObject> for NSLayoutYAxisAnchor {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSLayoutYAxisAnchor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLayoutYAxisAnchor").unwrap()) };
        if is_kind_of {
            Ok(NSLayoutYAxisAnchor(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSLayoutYAxisAnchor")
        }
    }
}
impl INSLayoutYAxisAnchor for NSLayoutYAxisAnchor {}
pub trait INSLayoutYAxisAnchor: Sized + std::ops::Deref {
    unsafe fn anchorWithOffsetToAnchor_(
        &self,
        otherAnchor: NSLayoutYAxisAnchor,
    ) -> NSLayoutDimension
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, anchorWithOffsetToAnchor : otherAnchor)
    }
    unsafe fn constraintEqualToSystemSpacingBelowAnchor_multiplier_(
        &self,
        anchor: NSLayoutYAxisAnchor,
        multiplier: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToSystemSpacingBelowAnchor : anchor, multiplier : multiplier)
    }
    unsafe fn constraintGreaterThanOrEqualToSystemSpacingBelowAnchor_multiplier_(
        &self,
        anchor: NSLayoutYAxisAnchor,
        multiplier: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToSystemSpacingBelowAnchor : anchor, multiplier : multiplier)
    }
    unsafe fn constraintLessThanOrEqualToSystemSpacingBelowAnchor_multiplier_(
        &self,
        anchor: NSLayoutYAxisAnchor,
        multiplier: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToSystemSpacingBelowAnchor : anchor, multiplier : multiplier)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLayoutDimension(pub id);
impl std::ops::Deref for NSLayoutDimension {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLayoutDimension {}
impl NSLayoutDimension {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutDimension").unwrap(), alloc) })
    }
}
impl<AnchorType: 'static> INSLayoutAnchor<AnchorType> for NSLayoutDimension {}
impl PNSCopying for NSLayoutDimension {}
impl PNSCoding for NSLayoutDimension {}
impl INSObject for NSLayoutDimension {}
impl PNSObject for NSLayoutDimension {}
impl std::convert::TryFrom<NSObject> for NSLayoutDimension {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSLayoutDimension, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLayoutDimension").unwrap()) };
        if is_kind_of {
            Ok(NSLayoutDimension(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSLayoutDimension")
        }
    }
}
impl INSLayoutDimension for NSLayoutDimension {}
pub trait INSLayoutDimension: Sized + std::ops::Deref {
    unsafe fn constraintEqualToConstant_(&self, c: CGFloat) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToConstant : c)
    }
    unsafe fn constraintGreaterThanOrEqualToConstant_(&self, c: CGFloat) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToConstant : c)
    }
    unsafe fn constraintLessThanOrEqualToConstant_(&self, c: CGFloat) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToConstant : c)
    }
    unsafe fn constraintEqualToAnchor_multiplier_(
        &self,
        anchor: NSLayoutDimension,
        m: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToAnchor : anchor, multiplier : m)
    }
    unsafe fn constraintGreaterThanOrEqualToAnchor_multiplier_(
        &self,
        anchor: NSLayoutDimension,
        m: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToAnchor : anchor, multiplier : m)
    }
    unsafe fn constraintLessThanOrEqualToAnchor_multiplier_(
        &self,
        anchor: NSLayoutDimension,
        m: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToAnchor : anchor, multiplier : m)
    }
    unsafe fn constraintEqualToAnchor_multiplier_constant_(
        &self,
        anchor: NSLayoutDimension,
        m: CGFloat,
        c: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintEqualToAnchor : anchor, multiplier : m, constant : c)
    }
    unsafe fn constraintGreaterThanOrEqualToAnchor_multiplier_constant_(
        &self,
        anchor: NSLayoutDimension,
        m: CGFloat,
        c: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintGreaterThanOrEqualToAnchor : anchor, multiplier : m, constant : c)
    }
    unsafe fn constraintLessThanOrEqualToAnchor_multiplier_constant_(
        &self,
        anchor: NSLayoutDimension,
        m: CGFloat,
        c: CGFloat,
    ) -> NSLayoutConstraint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintLessThanOrEqualToAnchor : anchor, multiplier : m, constant : c)
    }
}
pub type NSLayoutConstraintOrientation = NSInteger;
pub type NSLayoutRelation = NSInteger;
pub type NSLayoutAttribute = NSInteger;
pub type NSLayoutFormatOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLayoutConstraint(pub id);
impl std::ops::Deref for NSLayoutConstraint {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLayoutConstraint {}
impl NSLayoutConstraint {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutConstraint").unwrap(), alloc) })
    }
}
impl INSObject for NSLayoutConstraint {}
impl PNSObject for NSLayoutConstraint {}
impl std::convert::TryFrom<NSObject> for NSLayoutConstraint {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSLayoutConstraint, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLayoutConstraint").unwrap()) };
        if is_kind_of {
            Ok(NSLayoutConstraint(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSLayoutConstraint")
        }
    }
}
impl INSLayoutConstraint for NSLayoutConstraint {}
pub trait INSLayoutConstraint: Sized + std::ops::Deref {
    unsafe fn priority(&self) -> NSLayoutPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, priority)
    }
    unsafe fn setPriority_(&self, priority: NSLayoutPriority)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPriority : priority)
    }
    unsafe fn shouldBeArchived(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shouldBeArchived)
    }
    unsafe fn setShouldBeArchived_(&self, shouldBeArchived: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShouldBeArchived : shouldBeArchived)
    }
    unsafe fn firstItem(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstItem)
    }
    unsafe fn secondItem(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, secondItem)
    }
    unsafe fn firstAttribute(&self) -> NSLayoutAttribute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstAttribute)
    }
    unsafe fn secondAttribute(&self) -> NSLayoutAttribute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, secondAttribute)
    }
    unsafe fn firstAnchor(&self) -> NSLayoutAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstAnchor)
    }
    unsafe fn secondAnchor(&self) -> NSLayoutAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, secondAnchor)
    }
    unsafe fn relation(&self) -> NSLayoutRelation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, relation)
    }
    unsafe fn multiplier(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, multiplier)
    }
    unsafe fn constant(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, constant)
    }
    unsafe fn setConstant_(&self, constant: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setConstant : constant)
    }
    unsafe fn isActive(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isActive)
    }
    unsafe fn setActive_(&self, active: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setActive : active)
    }
    unsafe fn constraintsWithVisualFormat_options_metrics_views_(
        format: NSString,
        opts: NSLayoutFormatOptions,
        metrics: NSDictionary,
        views: NSDictionary,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutConstraint").unwrap(), constraintsWithVisualFormat : format, options : opts, metrics : metrics, views : views)
    }
    unsafe fn constraintWithItem_attribute_relatedBy_toItem_attribute_multiplier_constant_(
        view1: id,
        attr1: NSLayoutAttribute,
        relation: NSLayoutRelation,
        view2: id,
        attr2: NSLayoutAttribute,
        multiplier: CGFloat,
        c: CGFloat,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutConstraint").unwrap(), constraintWithItem : view1, attribute : attr1, relatedBy : relation, toItem : view2, attribute : attr2, multiplier : multiplier, constant : c)
    }
    unsafe fn activateConstraints_(constraints: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutConstraint").unwrap(), activateConstraints : constraints)
    }
    unsafe fn deactivateConstraints_(constraints: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutConstraint").unwrap(), deactivateConstraints : constraints)
    }
}
impl NSLayoutConstraint_NSIdentifier for NSLayoutConstraint {}
impl NSLayoutConstraint_ for NSLayoutConstraint {}
impl NSView_NSConstraintBasedLayoutInstallingConstraints for NSView {}
impl NSWindow_NSConstraintBasedLayoutCoreMethods for NSWindow {}
impl NSView_NSConstraintBasedLayoutCoreMethods for NSView {}
impl NSView_NSConstraintBasedCompatibility for NSView {}
impl NSView_NSConstraintBasedLayoutLayering for NSView {}
impl NSControl_NSConstraintBasedLayoutLayering for NSControl {}
impl NSWindow_NSConstraintBasedLayoutAnchoring for NSWindow {}
impl NSView_NSConstraintBasedLayoutFittingSize for NSView {}
impl NSView_NSConstraintBasedLayoutDebugging for NSView {}
impl NSWindow_NSConstraintBasedLayoutDebugging for NSWindow {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLayoutGuide(pub id);
impl std::ops::Deref for NSLayoutGuide {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLayoutGuide {}
impl NSLayoutGuide {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLayoutGuide").unwrap(), alloc) })
    }
}
impl PNSCoding for NSLayoutGuide {}
impl PNSUserInterfaceItemIdentification for NSLayoutGuide {}
impl INSObject for NSLayoutGuide {}
impl PNSObject for NSLayoutGuide {}
impl std::convert::TryFrom<NSObject> for NSLayoutGuide {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSLayoutGuide, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLayoutGuide").unwrap()) };
        if is_kind_of {
            Ok(NSLayoutGuide(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSLayoutGuide")
        }
    }
}
impl INSLayoutGuide for NSLayoutGuide {}
pub trait INSLayoutGuide: Sized + std::ops::Deref {
    unsafe fn constraintsAffectingLayoutForOrientation_(
        &self,
        orientation: NSLayoutConstraintOrientation,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, constraintsAffectingLayoutForOrientation : orientation)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn owningView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, owningView)
    }
    unsafe fn setOwningView_(&self, owningView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOwningView : owningView)
    }
    unsafe fn identifier(&self) -> NSUserInterfaceItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
    unsafe fn leadingAnchor(&self) -> NSLayoutXAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leadingAnchor)
    }
    unsafe fn trailingAnchor(&self) -> NSLayoutXAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trailingAnchor)
    }
    unsafe fn leftAnchor(&self) -> NSLayoutXAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leftAnchor)
    }
    unsafe fn rightAnchor(&self) -> NSLayoutXAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rightAnchor)
    }
    unsafe fn topAnchor(&self) -> NSLayoutYAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, topAnchor)
    }
    unsafe fn bottomAnchor(&self) -> NSLayoutYAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bottomAnchor)
    }
    unsafe fn widthAnchor(&self) -> NSLayoutDimension
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, widthAnchor)
    }
    unsafe fn heightAnchor(&self) -> NSLayoutDimension
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, heightAnchor)
    }
    unsafe fn centerXAnchor(&self) -> NSLayoutXAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, centerXAnchor)
    }
    unsafe fn centerYAnchor(&self) -> NSLayoutYAxisAnchor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, centerYAnchor)
    }
    unsafe fn hasAmbiguousLayout(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasAmbiguousLayout)
    }
}
impl NSView_NSLayoutGuideSupport for NSView {}
pub type NSImageLoadStatus = NSUInteger;
pub type NSImageCacheMode = NSUInteger;
pub type NSImageResizingMode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSImage(pub id);
impl std::ops::Deref for NSImage {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSImage {}
impl NSImage {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), alloc) })
    }
}
impl INSObject for NSImage {}
impl PNSObject for NSImage {}
impl std::convert::TryFrom<NSObject> for NSImage {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSImage, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSImage").unwrap()) };
        if is_kind_of {
            Ok(NSImage(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSImage")
        }
    }
}
impl INSImage for NSImage {}
pub trait INSImage: Sized + std::ops::Deref {
    unsafe fn initWithSize_(&self, size: NSSize) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSize : size)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initWithData_(&self, data: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : data)
    }
    unsafe fn initWithContentsOfFile_(&self, fileName: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentsOfFile : fileName)
    }
    unsafe fn initWithContentsOfURL_(&self, url: NSURL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentsOfURL : url)
    }
    unsafe fn initByReferencingFile_(&self, fileName: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initByReferencingFile : fileName)
    }
    unsafe fn initByReferencingURL_(&self, url: NSURL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initByReferencingURL : url)
    }
    unsafe fn initWithPasteboard_(&self, pasteboard: NSPasteboard) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPasteboard : pasteboard)
    }
    unsafe fn initWithDataIgnoringOrientation_(&self, data: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDataIgnoringOrientation : data)
    }
    unsafe fn setName_(&self, string: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setName : string)
    }
    unsafe fn name(&self) -> NSImageName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn drawAtPoint_fromRect_operation_fraction_(
        &self,
        point: NSPoint,
        fromRect: NSRect,
        op: NSCompositingOperation,
        delta: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawAtPoint : point, fromRect : fromRect, operation : op, fraction : delta)
    }
    unsafe fn drawInRect_fromRect_operation_fraction_(
        &self,
        rect: NSRect,
        fromRect: NSRect,
        op: NSCompositingOperation,
        delta: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : rect, fromRect : fromRect, operation : op, fraction : delta)
    }
    unsafe fn drawInRect_fromRect_operation_fraction_respectFlipped_hints_(
        &self,
        dstSpacePortionRect: NSRect,
        srcSpacePortionRect: NSRect,
        op: NSCompositingOperation,
        requestedAlpha: CGFloat,
        respectContextIsFlipped: BOOL,
        hints: NSDictionary,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : dstSpacePortionRect, fromRect : srcSpacePortionRect, operation : op, fraction : requestedAlpha, respectFlipped : respectContextIsFlipped, hints : hints)
    }
    unsafe fn drawRepresentation_inRect_(&self, imageRep: NSImageRep, rect: NSRect) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawRepresentation : imageRep, inRect : rect)
    }
    unsafe fn drawInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInRect : rect)
    }
    unsafe fn recache(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recache)
    }
    unsafe fn TIFFRepresentationUsingCompression_factor_(
        &self,
        comp: NSTIFFCompression,
        factor: f32,
    ) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, TIFFRepresentationUsingCompression : comp, factor : factor)
    }
    unsafe fn addRepresentations_(&self, imageReps: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addRepresentations : imageReps)
    }
    unsafe fn addRepresentation_(&self, imageRep: NSImageRep)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addRepresentation : imageRep)
    }
    unsafe fn removeRepresentation_(&self, imageRep: NSImageRep)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRepresentation : imageRep)
    }
    unsafe fn initWithCGImage_size_(&self, cgImage: CGImageRef, size: NSSize) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCGImage : cgImage, size : size)
    }
    unsafe fn CGImageForProposedRect_context_hints_(
        &self,
        proposedDestRect: *mut NSRect,
        referenceContext: NSGraphicsContext,
        hints: NSDictionary,
    ) -> CGImageRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, CGImageForProposedRect : proposedDestRect, context : referenceContext, hints : hints)
    }
    unsafe fn bestRepresentationForRect_context_hints_(
        &self,
        rect: NSRect,
        referenceContext: NSGraphicsContext,
        hints: NSDictionary,
    ) -> NSImageRep
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, bestRepresentationForRect : rect, context : referenceContext, hints : hints)
    }
    unsafe fn hitTestRect_withImageDestinationRect_context_hints_flipped_(
        &self,
        testRectDestSpace: NSRect,
        imageRectDestSpace: NSRect,
        context: NSGraphicsContext,
        hints: NSDictionary,
        flipped: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, hitTestRect : testRectDestSpace, withImageDestinationRect : imageRectDestSpace, context : context, hints : hints, flipped : flipped)
    }
    unsafe fn recommendedLayerContentsScale_(&self, preferredContentsScale: CGFloat) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, recommendedLayerContentsScale : preferredContentsScale)
    }
    unsafe fn layerContentsForContentsScale_(&self, layerContentsScale: CGFloat) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layerContentsForContentsScale : layerContentsScale)
    }
    unsafe fn imageWithSymbolConfiguration_(
        &self,
        configuration: NSImageSymbolConfiguration,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageWithSymbolConfiguration : configuration)
    }
    unsafe fn imageWithLocale_(&self, locale: NSLocale) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageWithLocale : locale)
    }
    unsafe fn size(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, size)
    }
    unsafe fn setSize_(&self, size: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSize : size)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn usesEPSOnResolutionMismatch(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesEPSOnResolutionMismatch)
    }
    unsafe fn setUsesEPSOnResolutionMismatch_(&self, usesEPSOnResolutionMismatch: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesEPSOnResolutionMismatch : usesEPSOnResolutionMismatch)
    }
    unsafe fn prefersColorMatch(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prefersColorMatch)
    }
    unsafe fn setPrefersColorMatch_(&self, prefersColorMatch: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrefersColorMatch : prefersColorMatch)
    }
    unsafe fn matchesOnMultipleResolution(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, matchesOnMultipleResolution)
    }
    unsafe fn setMatchesOnMultipleResolution_(&self, matchesOnMultipleResolution: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMatchesOnMultipleResolution : matchesOnMultipleResolution)
    }
    unsafe fn matchesOnlyOnBestFittingAxis(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, matchesOnlyOnBestFittingAxis)
    }
    unsafe fn setMatchesOnlyOnBestFittingAxis_(&self, matchesOnlyOnBestFittingAxis: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMatchesOnlyOnBestFittingAxis : matchesOnlyOnBestFittingAxis)
    }
    unsafe fn TIFFRepresentation(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, TIFFRepresentation)
    }
    unsafe fn representations(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representations)
    }
    unsafe fn isValid(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isValid)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn cacheMode(&self) -> NSImageCacheMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cacheMode)
    }
    unsafe fn setCacheMode_(&self, cacheMode: NSImageCacheMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCacheMode : cacheMode)
    }
    unsafe fn alignmentRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alignmentRect)
    }
    unsafe fn setAlignmentRect_(&self, alignmentRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignmentRect : alignmentRect)
    }
    unsafe fn isTemplate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTemplate)
    }
    unsafe fn setTemplate_(&self, template: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTemplate : template)
    }
    unsafe fn accessibilityDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessibilityDescription)
    }
    unsafe fn setAccessibilityDescription_(&self, accessibilityDescription: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessibilityDescription : accessibilityDescription)
    }
    unsafe fn capInsets(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, capInsets)
    }
    unsafe fn setCapInsets_(&self, capInsets: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCapInsets : capInsets)
    }
    unsafe fn resizingMode(&self) -> NSImageResizingMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resizingMode)
    }
    unsafe fn setResizingMode_(&self, resizingMode: NSImageResizingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResizingMode : resizingMode)
    }
    unsafe fn symbolConfiguration(&self) -> NSImageSymbolConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, symbolConfiguration)
    }
    unsafe fn locale(&self) -> NSLocale
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locale)
    }
    unsafe fn imageNamed_(name: NSString) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageNamed : name)
    }
    unsafe fn imageWithSystemSymbolName_accessibilityDescription_(
        name: NSString,
        description: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageWithSystemSymbolName : name, accessibilityDescription : description)
    }
    unsafe fn imageWithSystemSymbolName_variableValue_accessibilityDescription_(
        name: NSString,
        value: f64,
        description: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageWithSystemSymbolName : name, variableValue : value, accessibilityDescription : description)
    }
    unsafe fn imageWithSymbolName_variableValue_(name: NSString, value: f64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageWithSymbolName : name, variableValue : value)
    }
    unsafe fn imageWithSymbolName_bundle_variableValue_(
        name: NSString,
        bundle: NSBundle,
        value: f64,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageWithSymbolName : name, bundle : bundle, variableValue : value)
    }
    unsafe fn imageWithSize_flipped_drawingHandler_(
        size: NSSize,
        drawingHandlerShouldBeCalledWithFlippedContext: BOOL,
        drawingHandler: *mut ::std::os::raw::c_void,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageWithSize : size, flipped : drawingHandlerShouldBeCalledWithFlippedContext, drawingHandler : drawingHandler)
    }
    unsafe fn canInitWithPasteboard_(pasteboard: NSPasteboard) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), canInitWithPasteboard : pasteboard)
    }
    unsafe fn imageTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageTypes)
    }
    unsafe fn imageUnfilteredTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImage").unwrap(), imageUnfilteredTypes)
    }
}
pub trait PNSImageDelegate: Sized + std::ops::Deref {
    unsafe fn imageDidNotDraw_inRect_(&self, sender: NSImage, rect: NSRect) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageDidNotDraw : sender, inRect : rect)
    }
    unsafe fn image_willLoadRepresentation_(&self, image: NSImage, rep: NSImageRep)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, image : image, willLoadRepresentation : rep)
    }
    unsafe fn image_didLoadRepresentationHeader_(&self, image: NSImage, rep: NSImageRep)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, image : image, didLoadRepresentationHeader : rep)
    }
    unsafe fn image_didLoadPartOfRepresentation_withValidRows_(
        &self,
        image: NSImage,
        rep: NSImageRep,
        rows: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, image : image, didLoadPartOfRepresentation : rep, withValidRows : rows)
    }
    unsafe fn image_didLoadRepresentation_withStatus_(
        &self,
        image: NSImage,
        rep: NSImageRep,
        status: NSImageLoadStatus,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, image : image, didLoadRepresentation : rep, withStatus : status)
    }
}
impl NSImage_Deprecated for NSImage {}
pub type NSImageSymbolScale = NSInteger;
pub type NSImageSymbolVariableValueMode = NSInteger;
pub type NSImageSymbolColorRenderingMode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSImageSymbolConfiguration(pub id);
impl std::ops::Deref for NSImageSymbolConfiguration {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSImageSymbolConfiguration {}
impl NSImageSymbolConfiguration {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), alloc) })
    }
}
impl PNSCopying for NSImageSymbolConfiguration {}
impl PNSSecureCoding for NSImageSymbolConfiguration {}
impl INSObject for NSImageSymbolConfiguration {}
impl PNSObject for NSImageSymbolConfiguration {}
impl std::convert::TryFrom<NSObject> for NSImageSymbolConfiguration {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSImageSymbolConfiguration, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap()) };
        if is_kind_of {
            Ok(NSImageSymbolConfiguration(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSImageSymbolConfiguration")
        }
    }
}
impl INSImageSymbolConfiguration for NSImageSymbolConfiguration {}
pub trait INSImageSymbolConfiguration: Sized + std::ops::Deref {
    unsafe fn configurationByApplyingConfiguration_(
        &self,
        configuration: NSImageSymbolConfiguration,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, configurationByApplyingConfiguration : configuration)
    }
    unsafe fn configurationWithPointSize_weight_scale_(
        pointSize: CGFloat,
        weight: NSFontWeight,
        scale: NSImageSymbolScale,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithPointSize : pointSize, weight : weight, scale : scale)
    }
    unsafe fn configurationWithPointSize_weight_(
        pointSize: CGFloat,
        weight: NSFontWeight,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithPointSize : pointSize, weight : weight)
    }
    unsafe fn configurationWithTextStyle_scale_(
        style: NSString,
        scale: NSImageSymbolScale,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithTextStyle : style, scale : scale)
    }
    unsafe fn configurationWithTextStyle_(style: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithTextStyle : style)
    }
    unsafe fn configurationWithScale_(scale: NSImageSymbolScale) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithScale : scale)
    }
    unsafe fn configurationPreferringMonochrome() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationPreferringMonochrome)
    }
    unsafe fn configurationPreferringHierarchical() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationPreferringHierarchical)
    }
    unsafe fn configurationWithHierarchicalColor_(hierarchicalColor: NSColor) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithHierarchicalColor : hierarchicalColor)
    }
    unsafe fn configurationWithPaletteColors_(paletteColors: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithPaletteColors : paletteColors)
    }
    unsafe fn configurationPreferringMulticolor() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationPreferringMulticolor)
    }
    unsafe fn configurationWithVariableValueMode_(
        variableValueMode: NSImageSymbolVariableValueMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithVariableValueMode : variableValueMode)
    }
    unsafe fn configurationWithColorRenderingMode_(
        mode: NSImageSymbolColorRenderingMode,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageSymbolConfiguration").unwrap(), configurationWithColorRenderingMode : mode)
    }
}
pub type NSImageAlignment = NSUInteger;
pub type NSImageFrameStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSImageCell(pub id);
impl std::ops::Deref for NSImageCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSImageCell {}
impl NSImageCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageCell").unwrap(), alloc) })
    }
}
impl PNSCopying for NSImageCell {}
impl PNSCoding for NSImageCell {}
impl INSCell for NSImageCell {}
impl PNSUserInterfaceItemIdentification for NSImageCell {}
impl PNSAccessibilityElement for NSImageCell {}
impl PNSAccessibility for NSImageCell {}
impl std::convert::TryFrom<NSCell> for NSImageCell {
    type Error = &'static str;
    fn try_from(parent: NSCell) -> Result<NSImageCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSImageCell").unwrap()) };
        if is_kind_of {
            Ok(NSImageCell(parent.0))
        } else {
            Err("This NSCell cannot be downcasted to NSImageCell")
        }
    }
}
impl INSObject for NSImageCell {}
impl PNSObject for NSImageCell {}
impl INSImageCell for NSImageCell {}
pub trait INSImageCell: Sized + std::ops::Deref {
    unsafe fn imageAlignment(&self) -> NSImageAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageAlignment)
    }
    unsafe fn setImageAlignment_(&self, imageAlignment: NSImageAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageAlignment : imageAlignment)
    }
    unsafe fn imageScaling(&self) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageScaling)
    }
    unsafe fn setImageScaling_(&self, imageScaling: NSImageScaling)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : imageScaling)
    }
    unsafe fn imageFrameStyle(&self) -> NSImageFrameStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageFrameStyle)
    }
    unsafe fn setImageFrameStyle_(&self, imageFrameStyle: NSImageFrameStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageFrameStyle : imageFrameStyle)
    }
}
pub type NSImageDynamicRange = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSImageView(pub id);
impl std::ops::Deref for NSImageView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSImageView {}
impl NSImageView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageView").unwrap(), alloc) })
    }
}
impl PNSAccessibilityImage for NSImageView {}
impl PNSMenuItemValidation for NSImageView {}
impl INSControl for NSImageView {}
impl std::convert::TryFrom<NSControl> for NSImageView {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSImageView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSImageView").unwrap()) };
        if is_kind_of {
            Ok(NSImageView(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSImageView")
        }
    }
}
impl INSView for NSImageView {}
impl PNSAnimatablePropertyContainer for NSImageView {}
impl PNSUserInterfaceItemIdentification for NSImageView {}
impl PNSDraggingDestination for NSImageView {}
impl PNSAppearanceCustomization for NSImageView {}
impl PNSAccessibilityElement for NSImageView {}
impl PNSAccessibility for NSImageView {}
impl INSResponder for NSImageView {}
impl PNSCoding for NSImageView {}
impl INSObject for NSImageView {}
impl PNSObject for NSImageView {}
impl INSImageView for NSImageView {}
pub trait INSImageView: Sized + std::ops::Deref {
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn imageAlignment(&self) -> NSImageAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageAlignment)
    }
    unsafe fn setImageAlignment_(&self, imageAlignment: NSImageAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageAlignment : imageAlignment)
    }
    unsafe fn imageScaling(&self) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageScaling)
    }
    unsafe fn setImageScaling_(&self, imageScaling: NSImageScaling)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : imageScaling)
    }
    unsafe fn imageFrameStyle(&self) -> NSImageFrameStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageFrameStyle)
    }
    unsafe fn setImageFrameStyle_(&self, imageFrameStyle: NSImageFrameStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageFrameStyle : imageFrameStyle)
    }
    unsafe fn symbolConfiguration(&self) -> NSImageSymbolConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, symbolConfiguration)
    }
    unsafe fn setSymbolConfiguration_(&self, symbolConfiguration: NSImageSymbolConfiguration)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSymbolConfiguration : symbolConfiguration)
    }
    unsafe fn contentTintColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentTintColor)
    }
    unsafe fn setContentTintColor_(&self, contentTintColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentTintColor : contentTintColor)
    }
    unsafe fn animates(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, animates)
    }
    unsafe fn setAnimates_(&self, animates: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnimates : animates)
    }
    unsafe fn allowsCutCopyPaste(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsCutCopyPaste)
    }
    unsafe fn setAllowsCutCopyPaste_(&self, allowsCutCopyPaste: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsCutCopyPaste : allowsCutCopyPaste)
    }
    unsafe fn preferredImageDynamicRange(&self) -> NSImageDynamicRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredImageDynamicRange)
    }
    unsafe fn setPreferredImageDynamicRange_(&self, preferredImageDynamicRange: NSImageDynamicRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredImageDynamicRange : preferredImageDynamicRange)
    }
    unsafe fn imageDynamicRange(&self) -> NSImageDynamicRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageDynamicRange)
    }
    unsafe fn imageViewWithImage_(image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageView").unwrap(), imageViewWithImage : image)
    }
    unsafe fn defaultPreferredImageDynamicRange() -> NSImageDynamicRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageView").unwrap(), defaultPreferredImageDynamicRange)
    }
    unsafe fn setDefaultPreferredImageDynamicRange_(
        defaultPreferredImageDynamicRange: NSImageDynamicRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSImageView").unwrap(), setDefaultPreferredImageDynamicRange : defaultPreferredImageDynamicRange)
    }
}
impl NSImageView_NSSymbolEffect for NSImageView {}
pub trait PNSScrubberDataSource: Sized + std::ops::Deref {
    unsafe fn numberOfItemsForScrubber_(&self, scrubber: NSScrubber) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfItemsForScrubber : scrubber)
    }
    unsafe fn scrubber_viewForItemAtIndex_(
        &self,
        scrubber: NSScrubber,
        index: NSInteger,
    ) -> NSScrubberItemView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrubber : scrubber, viewForItemAtIndex : index)
    }
}
pub trait PNSScrubberDelegate: Sized + std::ops::Deref {
    unsafe fn scrubber_didSelectItemAtIndex_(&self, scrubber: NSScrubber, selectedIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrubber : scrubber, didSelectItemAtIndex : selectedIndex)
    }
    unsafe fn scrubber_didHighlightItemAtIndex_(
        &self,
        scrubber: NSScrubber,
        highlightedIndex: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrubber : scrubber, didHighlightItemAtIndex : highlightedIndex)
    }
    unsafe fn scrubber_didChangeVisibleRange_(&self, scrubber: NSScrubber, visibleRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrubber : scrubber, didChangeVisibleRange : visibleRange)
    }
    unsafe fn didBeginInteractingWithScrubber_(&self, scrubber: NSScrubber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didBeginInteractingWithScrubber : scrubber)
    }
    unsafe fn didFinishInteractingWithScrubber_(&self, scrubber: NSScrubber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didFinishInteractingWithScrubber : scrubber)
    }
    unsafe fn didCancelInteractingWithScrubber_(&self, scrubber: NSScrubber)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didCancelInteractingWithScrubber : scrubber)
    }
}
pub type NSScrubberMode = NSInteger;
pub type NSScrubberAlignment = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberSelectionStyle(pub id);
impl std::ops::Deref for NSScrubberSelectionStyle {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberSelectionStyle {}
impl NSScrubberSelectionStyle {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberSelectionStyle").unwrap(), alloc) })
    }
}
impl PNSCoding for NSScrubberSelectionStyle {}
impl INSObject for NSScrubberSelectionStyle {}
impl PNSObject for NSScrubberSelectionStyle {}
impl std::convert::TryFrom<NSObject> for NSScrubberSelectionStyle {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSScrubberSelectionStyle, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberSelectionStyle").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberSelectionStyle(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSScrubberSelectionStyle")
        }
    }
}
impl INSScrubberSelectionStyle for NSScrubberSelectionStyle {}
pub trait INSScrubberSelectionStyle: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn makeSelectionView(&self) -> NSScrubberSelectionView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeSelectionView)
    }
    unsafe fn outlineOverlayStyle() -> NSScrubberSelectionStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberSelectionStyle").unwrap(), outlineOverlayStyle)
    }
    unsafe fn roundedBackgroundStyle() -> NSScrubberSelectionStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberSelectionStyle").unwrap(), roundedBackgroundStyle)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubber(pub id);
impl std::ops::Deref for NSScrubber {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubber {}
impl NSScrubber {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubber").unwrap(), alloc) })
    }
}
impl INSView for NSScrubber {}
impl PNSAnimatablePropertyContainer for NSScrubber {}
impl PNSUserInterfaceItemIdentification for NSScrubber {}
impl PNSDraggingDestination for NSScrubber {}
impl PNSAppearanceCustomization for NSScrubber {}
impl PNSAccessibilityElement for NSScrubber {}
impl PNSAccessibility for NSScrubber {}
impl std::convert::TryFrom<NSView> for NSScrubber {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSScrubber, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubber").unwrap()) };
        if is_kind_of {
            Ok(NSScrubber(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSScrubber")
        }
    }
}
impl INSResponder for NSScrubber {}
impl PNSCoding for NSScrubber {}
impl INSObject for NSScrubber {}
impl PNSObject for NSScrubber {}
impl INSScrubber for NSScrubber {}
pub trait INSScrubber: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn reloadData(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadData)
    }
    unsafe fn performSequentialBatchUpdates_(&self, updateBlock: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performSequentialBatchUpdates : updateBlock)
    }
    unsafe fn insertItemsAtIndexes_(&self, indexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemsAtIndexes : indexes)
    }
    unsafe fn removeItemsAtIndexes_(&self, indexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemsAtIndexes : indexes)
    }
    unsafe fn reloadItemsAtIndexes_(&self, indexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadItemsAtIndexes : indexes)
    }
    unsafe fn moveItemAtIndex_toIndex_(&self, oldIndex: NSInteger, newIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveItemAtIndex : oldIndex, toIndex : newIndex)
    }
    unsafe fn scrollItemAtIndex_toAlignment_(
        &self,
        index: NSInteger,
        alignment: NSScrubberAlignment,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollItemAtIndex : index, toAlignment : alignment)
    }
    unsafe fn itemViewForItemAtIndex_(&self, index: NSInteger) -> NSScrubberItemView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemViewForItemAtIndex : index)
    }
    unsafe fn registerClass_forItemIdentifier_(
        &self,
        itemViewClass: Class,
        itemIdentifier: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerClass : itemViewClass, forItemIdentifier : itemIdentifier)
    }
    unsafe fn registerNib_forItemIdentifier_(&self, nib: NSNib, itemIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerNib : nib, forItemIdentifier : itemIdentifier)
    }
    unsafe fn makeItemWithIdentifier_owner_(
        &self,
        itemIdentifier: NSString,
        owner: id,
    ) -> NSScrubberItemView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeItemWithIdentifier : itemIdentifier, owner : owner)
    }
    unsafe fn dataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataSource)
    }
    unsafe fn setDataSource_(&self, dataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataSource : dataSource)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn scrubberLayout(&self) -> NSScrubberLayout
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrubberLayout)
    }
    unsafe fn setScrubberLayout_(&self, scrubberLayout: NSScrubberLayout)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrubberLayout : scrubberLayout)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn highlightedIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, highlightedIndex)
    }
    unsafe fn selectedIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedIndex)
    }
    unsafe fn setSelectedIndex_(&self, selectedIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedIndex : selectedIndex)
    }
    unsafe fn mode(&self) -> NSScrubberMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mode)
    }
    unsafe fn setMode_(&self, mode: NSScrubberMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMode : mode)
    }
    unsafe fn itemAlignment(&self) -> NSScrubberAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemAlignment)
    }
    unsafe fn setItemAlignment_(&self, itemAlignment: NSScrubberAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemAlignment : itemAlignment)
    }
    unsafe fn isContinuous(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isContinuous)
    }
    unsafe fn setContinuous_(&self, continuous: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContinuous : continuous)
    }
    unsafe fn floatsSelectionViews(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, floatsSelectionViews)
    }
    unsafe fn setFloatsSelectionViews_(&self, floatsSelectionViews: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFloatsSelectionViews : floatsSelectionViews)
    }
    unsafe fn selectionBackgroundStyle(&self) -> NSScrubberSelectionStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionBackgroundStyle)
    }
    unsafe fn setSelectionBackgroundStyle_(
        &self,
        selectionBackgroundStyle: NSScrubberSelectionStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionBackgroundStyle : selectionBackgroundStyle)
    }
    unsafe fn selectionOverlayStyle(&self) -> NSScrubberSelectionStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionOverlayStyle)
    }
    unsafe fn setSelectionOverlayStyle_(&self, selectionOverlayStyle: NSScrubberSelectionStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionOverlayStyle : selectionOverlayStyle)
    }
    unsafe fn showsArrowButtons(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsArrowButtons)
    }
    unsafe fn setShowsArrowButtons_(&self, showsArrowButtons: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsArrowButtons : showsArrowButtons)
    }
    unsafe fn showsAdditionalContentIndicators(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsAdditionalContentIndicators)
    }
    unsafe fn setShowsAdditionalContentIndicators_(&self, showsAdditionalContentIndicators: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsAdditionalContentIndicators : showsAdditionalContentIndicators)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn backgroundView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundView)
    }
    unsafe fn setBackgroundView_(&self, backgroundView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundView : backgroundView)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberArrangedView(pub id);
impl std::ops::Deref for NSScrubberArrangedView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberArrangedView {}
impl NSScrubberArrangedView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberArrangedView").unwrap(), alloc) })
    }
}
impl INSView for NSScrubberArrangedView {}
impl PNSAnimatablePropertyContainer for NSScrubberArrangedView {}
impl PNSUserInterfaceItemIdentification for NSScrubberArrangedView {}
impl PNSDraggingDestination for NSScrubberArrangedView {}
impl PNSAppearanceCustomization for NSScrubberArrangedView {}
impl PNSAccessibilityElement for NSScrubberArrangedView {}
impl PNSAccessibility for NSScrubberArrangedView {}
impl std::convert::TryFrom<NSView> for NSScrubberArrangedView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSScrubberArrangedView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberArrangedView").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberArrangedView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSScrubberArrangedView")
        }
    }
}
impl INSResponder for NSScrubberArrangedView {}
impl PNSCoding for NSScrubberArrangedView {}
impl INSObject for NSScrubberArrangedView {}
impl PNSObject for NSScrubberArrangedView {}
impl INSScrubberArrangedView for NSScrubberArrangedView {}
pub trait INSScrubberArrangedView: Sized + std::ops::Deref {
    unsafe fn applyLayoutAttributes_(&self, layoutAttributes: NSScrubberLayoutAttributes)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applyLayoutAttributes : layoutAttributes)
    }
    unsafe fn isSelected(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelected)
    }
    unsafe fn setSelected_(&self, selected: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelected : selected)
    }
    unsafe fn isHighlighted(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHighlighted)
    }
    unsafe fn setHighlighted_(&self, highlighted: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHighlighted : highlighted)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberSelectionView(pub id);
impl std::ops::Deref for NSScrubberSelectionView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberSelectionView {}
impl NSScrubberSelectionView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberSelectionView").unwrap(), alloc) })
    }
}
impl INSScrubberArrangedView for NSScrubberSelectionView {}
impl From<NSScrubberSelectionView> for NSScrubberArrangedView {
    fn from(child: NSScrubberSelectionView) -> NSScrubberArrangedView {
        NSScrubberArrangedView(child.0)
    }
}
impl std::convert::TryFrom<NSScrubberArrangedView> for NSScrubberSelectionView {
    type Error = &'static str;
    fn try_from(parent: NSScrubberArrangedView) -> Result<NSScrubberSelectionView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberSelectionView").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberSelectionView(parent.0))
        } else {
            Err("This NSScrubberArrangedView cannot be downcasted to NSScrubberSelectionView")
        }
    }
}
impl INSView for NSScrubberSelectionView {}
impl PNSAnimatablePropertyContainer for NSScrubberSelectionView {}
impl PNSUserInterfaceItemIdentification for NSScrubberSelectionView {}
impl PNSDraggingDestination for NSScrubberSelectionView {}
impl PNSAppearanceCustomization for NSScrubberSelectionView {}
impl PNSAccessibilityElement for NSScrubberSelectionView {}
impl PNSAccessibility for NSScrubberSelectionView {}
impl INSResponder for NSScrubberSelectionView {}
impl PNSCoding for NSScrubberSelectionView {}
impl INSObject for NSScrubberSelectionView {}
impl PNSObject for NSScrubberSelectionView {}
impl INSScrubberSelectionView for NSScrubberSelectionView {}
pub trait INSScrubberSelectionView: Sized + std::ops::Deref {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberItemView(pub id);
impl std::ops::Deref for NSScrubberItemView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberItemView {}
impl NSScrubberItemView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberItemView").unwrap(), alloc) })
    }
}
impl INSScrubberArrangedView for NSScrubberItemView {}
impl std::convert::TryFrom<NSScrubberArrangedView> for NSScrubberItemView {
    type Error = &'static str;
    fn try_from(parent: NSScrubberArrangedView) -> Result<NSScrubberItemView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberItemView").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberItemView(parent.0))
        } else {
            Err("This NSScrubberArrangedView cannot be downcasted to NSScrubberItemView")
        }
    }
}
impl INSView for NSScrubberItemView {}
impl PNSAnimatablePropertyContainer for NSScrubberItemView {}
impl PNSUserInterfaceItemIdentification for NSScrubberItemView {}
impl PNSDraggingDestination for NSScrubberItemView {}
impl PNSAppearanceCustomization for NSScrubberItemView {}
impl PNSAccessibilityElement for NSScrubberItemView {}
impl PNSAccessibility for NSScrubberItemView {}
impl INSResponder for NSScrubberItemView {}
impl PNSCoding for NSScrubberItemView {}
impl INSObject for NSScrubberItemView {}
impl PNSObject for NSScrubberItemView {}
impl INSScrubberItemView for NSScrubberItemView {}
pub trait INSScrubberItemView: Sized + std::ops::Deref {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberTextItemView(pub id);
impl std::ops::Deref for NSScrubberTextItemView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberTextItemView {}
impl NSScrubberTextItemView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberTextItemView").unwrap(), alloc) })
    }
}
impl INSScrubberItemView for NSScrubberTextItemView {}
impl From<NSScrubberTextItemView> for NSScrubberItemView {
    fn from(child: NSScrubberTextItemView) -> NSScrubberItemView {
        NSScrubberItemView(child.0)
    }
}
impl std::convert::TryFrom<NSScrubberItemView> for NSScrubberTextItemView {
    type Error = &'static str;
    fn try_from(parent: NSScrubberItemView) -> Result<NSScrubberTextItemView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberTextItemView").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberTextItemView(parent.0))
        } else {
            Err("This NSScrubberItemView cannot be downcasted to NSScrubberTextItemView")
        }
    }
}
impl INSScrubberArrangedView for NSScrubberTextItemView {}
impl INSView for NSScrubberTextItemView {}
impl PNSAnimatablePropertyContainer for NSScrubberTextItemView {}
impl PNSUserInterfaceItemIdentification for NSScrubberTextItemView {}
impl PNSDraggingDestination for NSScrubberTextItemView {}
impl PNSAppearanceCustomization for NSScrubberTextItemView {}
impl PNSAccessibilityElement for NSScrubberTextItemView {}
impl PNSAccessibility for NSScrubberTextItemView {}
impl INSResponder for NSScrubberTextItemView {}
impl PNSCoding for NSScrubberTextItemView {}
impl INSObject for NSScrubberTextItemView {}
impl PNSObject for NSScrubberTextItemView {}
impl INSScrubberTextItemView for NSScrubberTextItemView {}
pub trait INSScrubberTextItemView: Sized + std::ops::Deref {
    unsafe fn textField(&self) -> NSTextField
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textField)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberImageItemView(pub id);
impl std::ops::Deref for NSScrubberImageItemView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberImageItemView {}
impl NSScrubberImageItemView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberImageItemView").unwrap(), alloc) })
    }
}
impl INSScrubberItemView for NSScrubberImageItemView {}
impl std::convert::TryFrom<NSScrubberItemView> for NSScrubberImageItemView {
    type Error = &'static str;
    fn try_from(parent: NSScrubberItemView) -> Result<NSScrubberImageItemView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberImageItemView").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberImageItemView(parent.0))
        } else {
            Err("This NSScrubberItemView cannot be downcasted to NSScrubberImageItemView")
        }
    }
}
impl INSScrubberArrangedView for NSScrubberImageItemView {}
impl INSView for NSScrubberImageItemView {}
impl PNSAnimatablePropertyContainer for NSScrubberImageItemView {}
impl PNSUserInterfaceItemIdentification for NSScrubberImageItemView {}
impl PNSDraggingDestination for NSScrubberImageItemView {}
impl PNSAppearanceCustomization for NSScrubberImageItemView {}
impl PNSAccessibilityElement for NSScrubberImageItemView {}
impl PNSAccessibility for NSScrubberImageItemView {}
impl INSResponder for NSScrubberImageItemView {}
impl PNSCoding for NSScrubberImageItemView {}
impl INSObject for NSScrubberImageItemView {}
impl PNSObject for NSScrubberImageItemView {}
impl INSScrubberImageItemView for NSScrubberImageItemView {}
pub trait INSScrubberImageItemView: Sized + std::ops::Deref {
    unsafe fn imageView(&self) -> NSImageView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageView)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn imageAlignment(&self) -> NSImageAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageAlignment)
    }
    unsafe fn setImageAlignment_(&self, imageAlignment: NSImageAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageAlignment : imageAlignment)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberLayoutAttributes(pub id);
impl std::ops::Deref for NSScrubberLayoutAttributes {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberLayoutAttributes {}
impl NSScrubberLayoutAttributes {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberLayoutAttributes").unwrap(), alloc) })
    }
}
impl PNSCopying for NSScrubberLayoutAttributes {}
impl INSObject for NSScrubberLayoutAttributes {}
impl PNSObject for NSScrubberLayoutAttributes {}
impl std::convert::TryFrom<NSObject> for NSScrubberLayoutAttributes {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSScrubberLayoutAttributes, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberLayoutAttributes").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberLayoutAttributes(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSScrubberLayoutAttributes")
        }
    }
}
impl INSScrubberLayoutAttributes for NSScrubberLayoutAttributes {}
pub trait INSScrubberLayoutAttributes: Sized + std::ops::Deref {
    unsafe fn itemIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemIndex)
    }
    unsafe fn setItemIndex_(&self, itemIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemIndex : itemIndex)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn setFrame_(&self, frame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frame)
    }
    unsafe fn alpha(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alpha)
    }
    unsafe fn setAlpha_(&self, alpha: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlpha : alpha)
    }
    unsafe fn layoutAttributesForItemAtIndex_(index: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberLayoutAttributes").unwrap(), layoutAttributesForItemAtIndex : index)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberLayout(pub id);
impl std::ops::Deref for NSScrubberLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberLayout {}
impl NSScrubberLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberLayout").unwrap(), alloc) })
    }
}
impl PNSCoding for NSScrubberLayout {}
impl INSObject for NSScrubberLayout {}
impl PNSObject for NSScrubberLayout {}
impl std::convert::TryFrom<NSObject> for NSScrubberLayout {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSScrubberLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberLayout").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberLayout(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSScrubberLayout")
        }
    }
}
impl INSScrubberLayout for NSScrubberLayout {}
pub trait INSScrubberLayout: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn invalidateLayout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateLayout)
    }
    unsafe fn prepareLayout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prepareLayout)
    }
    unsafe fn layoutAttributesForItemAtIndex_(&self, index: NSInteger) -> NSScrubberLayoutAttributes
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutAttributesForItemAtIndex : index)
    }
    unsafe fn layoutAttributesForItemsInRect_(&self, rect: NSRect) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutAttributesForItemsInRect : rect)
    }
    unsafe fn shouldInvalidateLayoutForChangeFromVisibleRect_toVisibleRect_(
        &self,
        fromVisibleRect: NSRect,
        toVisibleRect: NSRect,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldInvalidateLayoutForChangeFromVisibleRect : fromVisibleRect, toVisibleRect : toVisibleRect)
    }
    unsafe fn scrubber(&self) -> NSScrubber
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrubber)
    }
    unsafe fn visibleRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleRect)
    }
    unsafe fn scrubberContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrubberContentSize)
    }
    unsafe fn shouldInvalidateLayoutForSelectionChange(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shouldInvalidateLayoutForSelectionChange)
    }
    unsafe fn shouldInvalidateLayoutForHighlightChange(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shouldInvalidateLayoutForHighlightChange)
    }
    unsafe fn automaticallyMirrorsInRightToLeftLayout(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyMirrorsInRightToLeftLayout)
    }
    unsafe fn layoutAttributesClass() -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberLayout").unwrap(), layoutAttributesClass)
    }
}
pub trait PNSScrubberFlowLayoutDelegate: Sized + std::ops::Deref {
    unsafe fn scrubber_layout_sizeForItemAtIndex_(
        &self,
        scrubber: NSScrubber,
        layout: NSScrubberFlowLayout,
        itemIndex: NSInteger,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrubber : scrubber, layout : layout, sizeForItemAtIndex : itemIndex)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberFlowLayout(pub id);
impl std::ops::Deref for NSScrubberFlowLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberFlowLayout {}
impl NSScrubberFlowLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberFlowLayout").unwrap(), alloc) })
    }
}
impl INSScrubberLayout for NSScrubberFlowLayout {}
impl PNSCoding for NSScrubberFlowLayout {}
impl From<NSScrubberFlowLayout> for NSScrubberLayout {
    fn from(child: NSScrubberFlowLayout) -> NSScrubberLayout {
        NSScrubberLayout(child.0)
    }
}
impl std::convert::TryFrom<NSScrubberLayout> for NSScrubberFlowLayout {
    type Error = &'static str;
    fn try_from(parent: NSScrubberLayout) -> Result<NSScrubberFlowLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberFlowLayout").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberFlowLayout(parent.0))
        } else {
            Err("This NSScrubberLayout cannot be downcasted to NSScrubberFlowLayout")
        }
    }
}
impl INSObject for NSScrubberFlowLayout {}
impl PNSObject for NSScrubberFlowLayout {}
impl INSScrubberFlowLayout for NSScrubberFlowLayout {}
pub trait INSScrubberFlowLayout: Sized + std::ops::Deref {
    unsafe fn invalidateLayoutForItemsAtIndexes_(&self, invalidItemIndexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateLayoutForItemsAtIndexes : invalidItemIndexes)
    }
    unsafe fn itemSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemSpacing)
    }
    unsafe fn setItemSpacing_(&self, itemSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemSpacing : itemSpacing)
    }
    unsafe fn itemSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemSize)
    }
    unsafe fn setItemSize_(&self, itemSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemSize : itemSize)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrubberProportionalLayout(pub id);
impl std::ops::Deref for NSScrubberProportionalLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrubberProportionalLayout {}
impl NSScrubberProportionalLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrubberProportionalLayout").unwrap(), alloc) })
    }
}
impl INSScrubberLayout for NSScrubberProportionalLayout {}
impl PNSCoding for NSScrubberProportionalLayout {}
impl std::convert::TryFrom<NSScrubberLayout> for NSScrubberProportionalLayout {
    type Error = &'static str;
    fn try_from(parent: NSScrubberLayout) -> Result<NSScrubberProportionalLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrubberProportionalLayout").unwrap()) };
        if is_kind_of {
            Ok(NSScrubberProportionalLayout(parent.0))
        } else {
            Err("This NSScrubberLayout cannot be downcasted to NSScrubberProportionalLayout")
        }
    }
}
impl INSObject for NSScrubberProportionalLayout {}
impl PNSObject for NSScrubberProportionalLayout {}
impl INSScrubberProportionalLayout for NSScrubberProportionalLayout {}
pub trait INSScrubberProportionalLayout: Sized + std::ops::Deref {
    unsafe fn initWithNumberOfVisibleItems_(&self, numberOfVisibleItems: NSInteger) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithNumberOfVisibleItems : numberOfVisibleItems)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn numberOfVisibleItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfVisibleItems)
    }
    unsafe fn setNumberOfVisibleItems_(&self, numberOfVisibleItems: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfVisibleItems : numberOfVisibleItems)
    }
}
pub type NSSharingServiceName = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSharingService(pub id);
impl std::ops::Deref for NSSharingService {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSharingService {}
impl NSSharingService {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingService").unwrap(), alloc) })
    }
}
impl INSObject for NSSharingService {}
impl PNSObject for NSSharingService {}
impl std::convert::TryFrom<NSObject> for NSSharingService {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSharingService, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSharingService").unwrap()) };
        if is_kind_of {
            Ok(NSSharingService(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSharingService")
        }
    }
}
impl INSSharingService for NSSharingService {}
pub trait INSSharingService: Sized + std::ops::Deref {
    unsafe fn initWithTitle_image_alternateImage_handler_(
        &self,
        title: NSString,
        image: NSImage,
        alternateImage: NSImage,
        block: *mut ::std::os::raw::c_void,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTitle : title, image : image, alternateImage : alternateImage, handler : block)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn canPerformWithItems_(&self, items: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canPerformWithItems : items)
    }
    unsafe fn performWithItems_(&self, items: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performWithItems : items)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn alternateImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternateImage)
    }
    unsafe fn menuItemTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menuItemTitle)
    }
    unsafe fn setMenuItemTitle_(&self, menuItemTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenuItemTitle : menuItemTitle)
    }
    unsafe fn recipients(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recipients)
    }
    unsafe fn setRecipients_(&self, recipients: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRecipients : recipients)
    }
    unsafe fn subject(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subject)
    }
    unsafe fn setSubject_(&self, subject: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubject : subject)
    }
    unsafe fn messageBody(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, messageBody)
    }
    unsafe fn permanentLink(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, permanentLink)
    }
    unsafe fn accountName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accountName)
    }
    unsafe fn attachmentFileURLs(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attachmentFileURLs)
    }
    unsafe fn sharingServicesForItems_(items: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingService").unwrap(), sharingServicesForItems : items)
    }
    unsafe fn sharingServiceNamed_(serviceName: NSString) -> NSSharingService
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingService").unwrap(), sharingServiceNamed : serviceName)
    }
}
pub type NSSharingContentScope = NSInteger;
pub trait PNSSharingServiceDelegate: Sized + std::ops::Deref {
    unsafe fn sharingService_willShareItems_(
        &self,
        sharingService: NSSharingService,
        items: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, willShareItems : items)
    }
    unsafe fn sharingService_didFailToShareItems_error_(
        &self,
        sharingService: NSSharingService,
        items: NSArray,
        error: NSError,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, didFailToShareItems : items, error : error)
    }
    unsafe fn sharingService_didShareItems_(&self, sharingService: NSSharingService, items: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, didShareItems : items)
    }
    unsafe fn sharingService_sourceFrameOnScreenForShareItem_(
        &self,
        sharingService: NSSharingService,
        item: id,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, sourceFrameOnScreenForShareItem : item)
    }
    unsafe fn sharingService_transitionImageForShareItem_contentRect_(
        &self,
        sharingService: NSSharingService,
        item: id,
        contentRect: *mut NSRect,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, transitionImageForShareItem : item, contentRect : contentRect)
    }
    unsafe fn sharingService_sourceWindowForShareItems_sharingContentScope_(
        &self,
        sharingService: NSSharingService,
        items: NSArray,
        sharingContentScope: *mut NSSharingContentScope,
    ) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, sourceWindowForShareItems : items, sharingContentScope : sharingContentScope)
    }
    unsafe fn anchoringViewForSharingService_showRelativeToRect_preferredEdge_(
        &self,
        sharingService: NSSharingService,
        positioningRect: *mut NSRect,
        preferredEdge: *mut NSRectEdge,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, anchoringViewForSharingService : sharingService, showRelativeToRect : positioningRect, preferredEdge : preferredEdge)
    }
}
pub type NSCloudKitSharingServiceOptions = NSUInteger;
pub trait PNSCloudSharingServiceDelegate: Sized + std::ops::Deref {
    unsafe fn sharingService_didCompleteForItems_error_(
        &self,
        sharingService: NSSharingService,
        items: NSArray,
        error: NSError,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, didCompleteForItems : items, error : error)
    }
    unsafe fn optionsForSharingService_shareProvider_(
        &self,
        cloudKitSharingService: NSSharingService,
        provider: NSItemProvider,
    ) -> NSCloudKitSharingServiceOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, optionsForSharingService : cloudKitSharingService, shareProvider : provider)
    }
    unsafe fn sharingService_didSaveShare_(&self, sharingService: NSSharingService, share: CKShare)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, didSaveShare : share)
    }
    unsafe fn sharingService_didStopSharing_(
        &self,
        sharingService: NSSharingService,
        share: CKShare,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingService : sharingService, didStopSharing : share)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSharingServicePicker(pub id);
impl std::ops::Deref for NSSharingServicePicker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSharingServicePicker {}
impl NSSharingServicePicker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingServicePicker").unwrap(), alloc) })
    }
}
impl INSObject for NSSharingServicePicker {}
impl PNSObject for NSSharingServicePicker {}
impl std::convert::TryFrom<NSObject> for NSSharingServicePicker {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSharingServicePicker, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSharingServicePicker").unwrap()) };
        if is_kind_of {
            Ok(NSSharingServicePicker(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSharingServicePicker")
        }
    }
}
impl INSSharingServicePicker for NSSharingServicePicker {}
pub trait INSSharingServicePicker: Sized + std::ops::Deref {
    unsafe fn initWithItems_(&self, items: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItems : items)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn showRelativeToRect_ofView_preferredEdge_(
        &self,
        rect: NSRect,
        view: NSView,
        preferredEdge: NSRectEdge,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showRelativeToRect : rect, ofView : view, preferredEdge : preferredEdge)
    }
    unsafe fn close(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, close)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn standardShareMenuItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, standardShareMenuItem)
    }
}
pub trait PNSSharingServicePickerDelegate: Sized + std::ops::Deref {
    unsafe fn sharingServicePicker_sharingServicesForItems_proposedSharingServices_(
        &self,
        sharingServicePicker: NSSharingServicePicker,
        items: NSArray,
        proposedServices: NSArray,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingServicePicker : sharingServicePicker, sharingServicesForItems : items, proposedSharingServices : proposedServices)
    }
    unsafe fn sharingServicePicker_delegateForSharingService_(
        &self,
        sharingServicePicker: NSSharingServicePicker,
        sharingService: NSSharingService,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingServicePicker : sharingServicePicker, delegateForSharingService : sharingService)
    }
    unsafe fn sharingServicePicker_didChooseSharingService_(
        &self,
        sharingServicePicker: NSSharingServicePicker,
        service: NSSharingService,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingServicePicker : sharingServicePicker, didChooseSharingService : service)
    }
    unsafe fn sharingServicePickerCollaborationModeRestrictions_(
        &self,
        sharingServicePicker: NSSharingServicePicker,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sharingServicePickerCollaborationModeRestrictions : sharingServicePicker)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSharingServicePickerTouchBarItem(pub id);
impl std::ops::Deref for NSSharingServicePickerTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSharingServicePickerTouchBarItem {}
impl NSSharingServicePickerTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingServicePickerTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSSharingServicePickerTouchBarItem {}
impl PNSCoding for NSSharingServicePickerTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSSharingServicePickerTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSSharingServicePickerTouchBarItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSharingServicePickerTouchBarItem").unwrap())
        };
        if is_kind_of {
            Ok(NSSharingServicePickerTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSSharingServicePickerTouchBarItem")
        }
    }
}
impl INSObject for NSSharingServicePickerTouchBarItem {}
impl PNSObject for NSSharingServicePickerTouchBarItem {}
impl INSSharingServicePickerTouchBarItem for NSSharingServicePickerTouchBarItem {}
pub trait INSSharingServicePickerTouchBarItem: Sized + std::ops::Deref {
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn buttonTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonTitle)
    }
    unsafe fn setButtonTitle_(&self, buttonTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonTitle : buttonTitle)
    }
    unsafe fn buttonImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, buttonImage)
    }
    unsafe fn setButtonImage_(&self, buttonImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonImage : buttonImage)
    }
}
pub trait PNSSharingServicePickerTouchBarItemDelegate: Sized + std::ops::Deref {
    unsafe fn itemsForSharingServicePickerTouchBarItem_(
        &self,
        pickerTouchBarItem: NSSharingServicePickerTouchBarItem,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemsForSharingServicePickerTouchBarItem : pickerTouchBarItem)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSliderAccessory(pub id);
impl std::ops::Deref for NSSliderAccessory {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSliderAccessory {}
impl NSSliderAccessory {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessory").unwrap(), alloc) })
    }
}
impl PNSCoding for NSSliderAccessory {}
impl INSObject for NSSliderAccessory {}
impl PNSObject for NSSliderAccessory {}
impl std::convert::TryFrom<NSObject> for NSSliderAccessory {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSliderAccessory, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSliderAccessory").unwrap()) };
        if is_kind_of {
            Ok(NSSliderAccessory(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSliderAccessory")
        }
    }
}
impl INSSliderAccessory for NSSliderAccessory {}
pub trait INSSliderAccessory: Sized + std::ops::Deref {
    unsafe fn behavior(&self) -> NSSliderAccessoryBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, behavior)
    }
    unsafe fn setBehavior_(&self, behavior: NSSliderAccessoryBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBehavior : behavior)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn accessoryWithImage_(image: NSImage) -> NSSliderAccessory
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessory").unwrap(), accessoryWithImage : image)
    }
}
impl NSSliderAccessory_ for NSSliderAccessory {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSliderAccessoryBehavior(pub id);
impl std::ops::Deref for NSSliderAccessoryBehavior {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSliderAccessoryBehavior {}
impl NSSliderAccessoryBehavior {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap(), alloc) })
    }
}
impl PNSCoding for NSSliderAccessoryBehavior {}
impl PNSCopying for NSSliderAccessoryBehavior {}
impl INSObject for NSSliderAccessoryBehavior {}
impl PNSObject for NSSliderAccessoryBehavior {}
impl std::convert::TryFrom<NSObject> for NSSliderAccessoryBehavior {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSliderAccessoryBehavior, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap()) };
        if is_kind_of {
            Ok(NSSliderAccessoryBehavior(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSliderAccessoryBehavior")
        }
    }
}
impl INSSliderAccessoryBehavior for NSSliderAccessoryBehavior {}
pub trait INSSliderAccessoryBehavior: Sized + std::ops::Deref {
    unsafe fn handleAction_(&self, sender: NSSliderAccessory)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleAction : sender)
    }
    unsafe fn behaviorWithTarget_action_(
        target: id,
        action: objc2::runtime::Sel,
    ) -> NSSliderAccessoryBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap(), behaviorWithTarget : target, action : action)
    }
    unsafe fn behaviorWithHandler_(
        handler: *mut ::std::os::raw::c_void,
    ) -> NSSliderAccessoryBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap(), behaviorWithHandler : handler)
    }
    unsafe fn automaticBehavior() -> NSSliderAccessoryBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap(), automaticBehavior)
    }
    unsafe fn valueStepBehavior() -> NSSliderAccessoryBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap(), valueStepBehavior)
    }
    unsafe fn valueResetBehavior() -> NSSliderAccessoryBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderAccessoryBehavior").unwrap(), valueResetBehavior)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSliderTouchBarItem(pub id);
impl std::ops::Deref for NSSliderTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSliderTouchBarItem {}
impl NSSliderTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSSliderTouchBarItem {}
impl PNSCoding for NSSliderTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSSliderTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSSliderTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSliderTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSSliderTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSSliderTouchBarItem")
        }
    }
}
impl INSObject for NSSliderTouchBarItem {}
impl PNSObject for NSSliderTouchBarItem {}
impl INSSliderTouchBarItem for NSSliderTouchBarItem {}
pub trait INSSliderTouchBarItem: Sized + std::ops::Deref {
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn slider(&self) -> NSSlider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, slider)
    }
    unsafe fn setSlider_(&self, slider: NSSlider)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSlider : slider)
    }
    unsafe fn doubleValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleValue)
    }
    unsafe fn setDoubleValue_(&self, doubleValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleValue : doubleValue)
    }
    unsafe fn minimumSliderWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumSliderWidth)
    }
    unsafe fn setMinimumSliderWidth_(&self, minimumSliderWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumSliderWidth : minimumSliderWidth)
    }
    unsafe fn maximumSliderWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumSliderWidth)
    }
    unsafe fn setMaximumSliderWidth_(&self, maximumSliderWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumSliderWidth : maximumSliderWidth)
    }
    unsafe fn label(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, label)
    }
    unsafe fn setLabel_(&self, label: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label)
    }
    unsafe fn minimumValueAccessory(&self) -> NSSliderAccessory
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumValueAccessory)
    }
    unsafe fn setMinimumValueAccessory_(&self, minimumValueAccessory: NSSliderAccessory)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumValueAccessory : minimumValueAccessory)
    }
    unsafe fn maximumValueAccessory(&self) -> NSSliderAccessory
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumValueAccessory)
    }
    unsafe fn setMaximumValueAccessory_(&self, maximumValueAccessory: NSSliderAccessory)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumValueAccessory : maximumValueAccessory)
    }
    unsafe fn valueAccessoryWidth(&self) -> NSSliderAccessoryWidth
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, valueAccessoryWidth)
    }
    unsafe fn setValueAccessoryWidth_(&self, valueAccessoryWidth: NSSliderAccessoryWidth)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValueAccessoryWidth : valueAccessoryWidth)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSpeechRecognizer(pub id);
impl std::ops::Deref for NSSpeechRecognizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSpeechRecognizer {}
impl NSSpeechRecognizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpeechRecognizer").unwrap(), alloc) })
    }
}
impl INSObject for NSSpeechRecognizer {}
impl PNSObject for NSSpeechRecognizer {}
impl std::convert::TryFrom<NSObject> for NSSpeechRecognizer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSpeechRecognizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSpeechRecognizer").unwrap()) };
        if is_kind_of {
            Ok(NSSpeechRecognizer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSpeechRecognizer")
        }
    }
}
impl INSSpeechRecognizer for NSSpeechRecognizer {}
pub trait INSSpeechRecognizer: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn startListening(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startListening)
    }
    unsafe fn stopListening(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stopListening)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn commands(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, commands)
    }
    unsafe fn setCommands_(&self, commands: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCommands : commands)
    }
    unsafe fn displayedCommandsTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayedCommandsTitle)
    }
    unsafe fn setDisplayedCommandsTitle_(&self, displayedCommandsTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayedCommandsTitle : displayedCommandsTitle)
    }
    unsafe fn listensInForegroundOnly(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, listensInForegroundOnly)
    }
    unsafe fn setListensInForegroundOnly_(&self, listensInForegroundOnly: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setListensInForegroundOnly : listensInForegroundOnly)
    }
    unsafe fn blocksOtherRecognizers(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, blocksOtherRecognizers)
    }
    unsafe fn setBlocksOtherRecognizers_(&self, blocksOtherRecognizers: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBlocksOtherRecognizers : blocksOtherRecognizers)
    }
}
pub trait PNSSpeechRecognizerDelegate: Sized + std::ops::Deref {
    unsafe fn speechRecognizer_didRecognizeCommand_(
        &self,
        sender: NSSpeechRecognizer,
        command: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, speechRecognizer : sender, didRecognizeCommand : command)
    }
}
pub type NSVoiceAttributeKey = NSString;
pub type NSSpeechDictionaryKey = NSString;
pub type NSVoiceGenderName = NSString;
pub type NSSpeechPropertyKey = NSString;
pub type NSSpeechBoundary = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSpeechSynthesizer(pub id);
impl std::ops::Deref for NSSpeechSynthesizer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSpeechSynthesizer {}
impl NSSpeechSynthesizer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpeechSynthesizer").unwrap(), alloc) })
    }
}
impl INSObject for NSSpeechSynthesizer {}
impl PNSObject for NSSpeechSynthesizer {}
impl std::convert::TryFrom<NSObject> for NSSpeechSynthesizer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSpeechSynthesizer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSpeechSynthesizer").unwrap()) };
        if is_kind_of {
            Ok(NSSpeechSynthesizer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSpeechSynthesizer")
        }
    }
}
impl INSSpeechSynthesizer for NSSpeechSynthesizer {}
pub trait INSSpeechSynthesizer: Sized + std::ops::Deref {
    unsafe fn initWithVoice_(&self, voice: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithVoice : voice)
    }
    unsafe fn startSpeakingString_(&self, string: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startSpeakingString : string)
    }
    unsafe fn startSpeakingString_toURL_(&self, string: NSString, url: NSURL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startSpeakingString : string, toURL : url)
    }
    unsafe fn stopSpeaking(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stopSpeaking)
    }
    unsafe fn stopSpeakingAtBoundary_(&self, boundary: NSSpeechBoundary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopSpeakingAtBoundary : boundary)
    }
    unsafe fn pauseSpeakingAtBoundary_(&self, boundary: NSSpeechBoundary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pauseSpeakingAtBoundary : boundary)
    }
    unsafe fn continueSpeaking(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, continueSpeaking)
    }
    unsafe fn voice(&self) -> NSSpeechSynthesizerVoiceName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, voice)
    }
    unsafe fn setVoice_(&self, voice: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVoice : voice)
    }
    unsafe fn addSpeechDictionary_(&self, speechDictionary: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSpeechDictionary : speechDictionary)
    }
    unsafe fn phonemesFromText_(&self, text: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, phonemesFromText : text)
    }
    unsafe fn objectForProperty_error_(&self, property: NSString, outError: *mut NSError) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, objectForProperty : property, error : outError)
    }
    unsafe fn setObject_forProperty_error_(
        &self,
        object: id,
        property: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObject : object, forProperty : property, error : outError)
    }
    unsafe fn isSpeaking(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSpeaking)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn rate(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rate)
    }
    unsafe fn setRate_(&self, rate: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRate : rate)
    }
    unsafe fn volume(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, volume)
    }
    unsafe fn setVolume_(&self, volume: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVolume : volume)
    }
    unsafe fn usesFeedbackWindow(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesFeedbackWindow)
    }
    unsafe fn setUsesFeedbackWindow_(&self, usesFeedbackWindow: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesFeedbackWindow : usesFeedbackWindow)
    }
    unsafe fn attributesForVoice_(voice: NSString) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpeechSynthesizer").unwrap(), attributesForVoice : voice)
    }
    unsafe fn isAnyApplicationSpeaking() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpeechSynthesizer").unwrap(), isAnyApplicationSpeaking)
    }
    unsafe fn defaultVoice() -> NSSpeechSynthesizerVoiceName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpeechSynthesizer").unwrap(), defaultVoice)
    }
    unsafe fn availableVoices() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpeechSynthesizer").unwrap(), availableVoices)
    }
}
pub trait PNSSpeechSynthesizerDelegate: Sized + std::ops::Deref {
    unsafe fn speechSynthesizer_didFinishSpeaking_(
        &self,
        sender: NSSpeechSynthesizer,
        finishedSpeaking: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, speechSynthesizer : sender, didFinishSpeaking : finishedSpeaking)
    }
    unsafe fn speechSynthesizer_willSpeakWord_ofString_(
        &self,
        sender: NSSpeechSynthesizer,
        characterRange: NSRange,
        string: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, speechSynthesizer : sender, willSpeakWord : characterRange, ofString : string)
    }
    unsafe fn speechSynthesizer_willSpeakPhoneme_(
        &self,
        sender: NSSpeechSynthesizer,
        phonemeOpcode: ::std::os::raw::c_short,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, speechSynthesizer : sender, willSpeakPhoneme : phonemeOpcode)
    }
    unsafe fn speechSynthesizer_didEncounterErrorAtIndex_ofString_message_(
        &self,
        sender: NSSpeechSynthesizer,
        characterIndex: NSUInteger,
        string: NSString,
        message: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, speechSynthesizer : sender, didEncounterErrorAtIndex : characterIndex, ofString : string, message : message)
    }
    unsafe fn speechSynthesizer_didEncounterSyncMessage_(
        &self,
        sender: NSSpeechSynthesizer,
        message: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, speechSynthesizer : sender, didEncounterSyncMessage : message)
    }
}
pub type NSSpeechMode = NSString;
pub type NSSpeechStatusKey = NSString;
pub type NSSpeechErrorKey = NSString;
pub type NSSpeechSynthesizerInfoKey = NSString;
pub type NSSpeechPhonemeInfoKey = NSString;
pub type NSSpeechCommandDelimiterKey = NSString;
pub type NSTextCheckingOptionKey = NSString;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSpellChecker(pub id);
impl std::ops::Deref for NSSpellChecker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSpellChecker {}
impl NSSpellChecker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), alloc) })
    }
}
impl INSObject for NSSpellChecker {}
impl PNSObject for NSSpellChecker {}
impl std::convert::TryFrom<NSObject> for NSSpellChecker {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSpellChecker, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap()) };
        if is_kind_of {
            Ok(NSSpellChecker(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSpellChecker")
        }
    }
}
impl INSSpellChecker for NSSpellChecker {}
pub trait INSSpellChecker: Sized + std::ops::Deref {
    unsafe fn checkSpellingOfString_startingAt_language_wrap_inSpellDocumentWithTag_wordCount_(
        &self,
        stringToCheck: NSString,
        startingOffset: NSInteger,
        language: NSString,
        wrapFlag: BOOL,
        tag: NSInteger,
        wordCount: *mut NSInteger,
    ) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkSpellingOfString : stringToCheck, startingAt : startingOffset, language : language, wrap : wrapFlag, inSpellDocumentWithTag : tag, wordCount : wordCount)
    }
    unsafe fn checkSpellingOfString_startingAt_(
        &self,
        stringToCheck: NSString,
        startingOffset: NSInteger,
    ) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkSpellingOfString : stringToCheck, startingAt : startingOffset)
    }
    unsafe fn countWordsInString_language_(
        &self,
        stringToCount: NSString,
        language: NSString,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, countWordsInString : stringToCount, language : language)
    }
    unsafe fn checkGrammarOfString_startingAt_language_wrap_inSpellDocumentWithTag_details_(
        &self,
        stringToCheck: NSString,
        startingOffset: NSInteger,
        language: NSString,
        wrapFlag: BOOL,
        tag: NSInteger,
        details: *mut NSArray,
    ) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkGrammarOfString : stringToCheck, startingAt : startingOffset, language : language, wrap : wrapFlag, inSpellDocumentWithTag : tag, details : details)
    }
    unsafe fn checkString_range_types_options_inSpellDocumentWithTag_orthography_wordCount_(
        &self,
        stringToCheck: NSString,
        range: NSRange,
        checkingTypes: NSTextCheckingTypes,
        options: NSDictionary,
        tag: NSInteger,
        orthography: *mut NSOrthography,
        wordCount: *mut NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkString : stringToCheck, range : range, types : checkingTypes, options : options, inSpellDocumentWithTag : tag, orthography : orthography, wordCount : wordCount)
    }
    unsafe fn requestCheckingOfString_range_types_options_inSpellDocumentWithTag_completionHandler_(
        &self,
        stringToCheck: NSString,
        range: NSRange,
        checkingTypes: NSTextCheckingTypes,
        options: NSDictionary,
        tag: NSInteger,
        completionHandler: *mut ::std::os::raw::c_void,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, requestCheckingOfString : stringToCheck, range : range, types : checkingTypes, options : options, inSpellDocumentWithTag : tag, completionHandler : completionHandler)
    }
    unsafe fn requestCandidatesForSelectedRange_inString_types_options_inSpellDocumentWithTag_completionHandler_(
        &self,
        selectedRange: NSRange,
        stringToCheck: NSString,
        checkingTypes: NSTextCheckingTypes,
        options: NSDictionary,
        tag: NSInteger,
        completionHandler: *mut ::std::os::raw::c_void,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, requestCandidatesForSelectedRange : selectedRange, inString : stringToCheck, types : checkingTypes, options : options, inSpellDocumentWithTag : tag, completionHandler : completionHandler)
    }
    unsafe fn menuForResult_string_options_atLocation_inView_(
        &self,
        result: NSTextCheckingResult,
        checkedString: NSString,
        options: NSDictionary,
        location: NSPoint,
        view: NSView,
    ) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuForResult : result, string : checkedString, options : options, atLocation : location, inView : view)
    }
    unsafe fn userQuotesArrayForLanguage_(&self, language: NSString) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, userQuotesArrayForLanguage : language)
    }
    unsafe fn updateSpellingPanelWithMisspelledWord_(&self, word: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateSpellingPanelWithMisspelledWord : word)
    }
    unsafe fn updateSpellingPanelWithGrammarString_detail_(
        &self,
        string: NSString,
        detail: NSDictionary,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateSpellingPanelWithGrammarString : string, detail : detail)
    }
    unsafe fn updatePanels(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updatePanels)
    }
    unsafe fn ignoreWord_inSpellDocumentWithTag_(&self, wordToIgnore: NSString, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ignoreWord : wordToIgnore, inSpellDocumentWithTag : tag)
    }
    unsafe fn ignoredWordsInSpellDocumentWithTag_(&self, tag: NSInteger) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ignoredWordsInSpellDocumentWithTag : tag)
    }
    unsafe fn setIgnoredWords_inSpellDocumentWithTag_(&self, words: NSArray, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIgnoredWords : words, inSpellDocumentWithTag : tag)
    }
    unsafe fn guessesForWordRange_inString_language_inSpellDocumentWithTag_(
        &self,
        range: NSRange,
        string: NSString,
        language: NSString,
        tag: NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, guessesForWordRange : range, inString : string, language : language, inSpellDocumentWithTag : tag)
    }
    unsafe fn correctionForWordRange_inString_language_inSpellDocumentWithTag_(
        &self,
        range: NSRange,
        string: NSString,
        language: NSString,
        tag: NSInteger,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, correctionForWordRange : range, inString : string, language : language, inSpellDocumentWithTag : tag)
    }
    unsafe fn completionsForPartialWordRange_inString_language_inSpellDocumentWithTag_(
        &self,
        range: NSRange,
        string: NSString,
        language: NSString,
        tag: NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, completionsForPartialWordRange : range, inString : string, language : language, inSpellDocumentWithTag : tag)
    }
    unsafe fn languageForWordRange_inString_orthography_(
        &self,
        range: NSRange,
        string: NSString,
        orthography: NSOrthography,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, languageForWordRange : range, inString : string, orthography : orthography)
    }
    unsafe fn closeSpellDocumentWithTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, closeSpellDocumentWithTag : tag)
    }
    unsafe fn recordResponse_toCorrection_forWord_language_inSpellDocumentWithTag_(
        &self,
        response: NSCorrectionResponse,
        correction: NSString,
        word: NSString,
        language: NSString,
        tag: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, recordResponse : response, toCorrection : correction, forWord : word, language : language, inSpellDocumentWithTag : tag)
    }
    unsafe fn showCorrectionIndicatorOfType_primaryString_alternativeStrings_forStringInRect_view_completionHandler_(
        &self,
        type_: NSCorrectionIndicatorType,
        primaryString: NSString,
        alternativeStrings: NSArray,
        rectOfTypedString: NSRect,
        view: NSView,
        completionBlock: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showCorrectionIndicatorOfType : type_, primaryString : primaryString, alternativeStrings : alternativeStrings, forStringInRect : rectOfTypedString, view : view, completionHandler : completionBlock)
    }
    unsafe fn dismissCorrectionIndicatorForView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dismissCorrectionIndicatorForView : view)
    }
    unsafe fn showInlinePredictionForCandidates_client_(
        &self,
        candidates: NSArray,
        client: *mut u64,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showInlinePredictionForCandidates : candidates, client : client)
    }
    unsafe fn preventsAutocorrectionBeforeString_language_(
        &self,
        string: NSString,
        language: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, preventsAutocorrectionBeforeString : string, language : language)
    }
    unsafe fn deletesAutospaceBetweenString_andString_language_(
        &self,
        precedingString: NSString,
        followingString: NSString,
        language: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deletesAutospaceBetweenString : precedingString, andString : followingString, language : language)
    }
    unsafe fn setWordFieldStringValue_(&self, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWordFieldStringValue : string)
    }
    unsafe fn learnWord_(&self, word: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, learnWord : word)
    }
    unsafe fn hasLearnedWord_(&self, word: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, hasLearnedWord : word)
    }
    unsafe fn unlearnWord_(&self, word: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unlearnWord : word)
    }
    unsafe fn language(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, language)
    }
    unsafe fn setLanguage_(&self, language: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLanguage : language)
    }
    unsafe fn userReplacementsDictionary(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userReplacementsDictionary)
    }
    unsafe fn spellingPanel(&self) -> NSPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spellingPanel)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
    unsafe fn substitutionsPanel(&self) -> NSPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, substitutionsPanel)
    }
    unsafe fn substitutionsPanelAccessoryViewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, substitutionsPanelAccessoryViewController)
    }
    unsafe fn setSubstitutionsPanelAccessoryViewController_(
        &self,
        substitutionsPanelAccessoryViewController: NSViewController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubstitutionsPanelAccessoryViewController : substitutionsPanelAccessoryViewController)
    }
    unsafe fn availableLanguages(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, availableLanguages)
    }
    unsafe fn userPreferredLanguages(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userPreferredLanguages)
    }
    unsafe fn automaticallyIdentifiesLanguages(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyIdentifiesLanguages)
    }
    unsafe fn setAutomaticallyIdentifiesLanguages_(&self, automaticallyIdentifiesLanguages: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyIdentifiesLanguages : automaticallyIdentifiesLanguages)
    }
    unsafe fn uniqueSpellDocumentTag() -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), uniqueSpellDocumentTag)
    }
    unsafe fn sharedSpellChecker() -> NSSpellChecker
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), sharedSpellChecker)
    }
    unsafe fn sharedSpellCheckerExists() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), sharedSpellCheckerExists)
    }
    unsafe fn isAutomaticTextReplacementEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticTextReplacementEnabled)
    }
    unsafe fn isAutomaticSpellingCorrectionEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticSpellingCorrectionEnabled)
    }
    unsafe fn isAutomaticQuoteSubstitutionEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticQuoteSubstitutionEnabled)
    }
    unsafe fn isAutomaticDashSubstitutionEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticDashSubstitutionEnabled)
    }
    unsafe fn isAutomaticCapitalizationEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticCapitalizationEnabled)
    }
    unsafe fn isAutomaticPeriodSubstitutionEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticPeriodSubstitutionEnabled)
    }
    unsafe fn isAutomaticTextCompletionEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticTextCompletionEnabled)
    }
    unsafe fn isAutomaticInlinePredictionEnabled() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSpellChecker").unwrap(), isAutomaticInlinePredictionEnabled)
    }
}
pub type NSCorrectionResponse = NSInteger;
pub type NSCorrectionIndicatorType = NSInteger;
impl NSSpellChecker_NSDeprecated for NSSpellChecker {}
pub type NSSplitViewDividerStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSplitView(pub id);
impl std::ops::Deref for NSSplitView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSplitView {}
impl NSSplitView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitView").unwrap(), alloc) })
    }
}
impl INSView for NSSplitView {}
impl PNSAnimatablePropertyContainer for NSSplitView {}
impl PNSUserInterfaceItemIdentification for NSSplitView {}
impl PNSDraggingDestination for NSSplitView {}
impl PNSAppearanceCustomization for NSSplitView {}
impl PNSAccessibilityElement for NSSplitView {}
impl PNSAccessibility for NSSplitView {}
impl std::convert::TryFrom<NSView> for NSSplitView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSSplitView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSplitView").unwrap()) };
        if is_kind_of {
            Ok(NSSplitView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSSplitView")
        }
    }
}
impl INSResponder for NSSplitView {}
impl PNSCoding for NSSplitView {}
impl INSObject for NSSplitView {}
impl PNSObject for NSSplitView {}
impl INSSplitView for NSSplitView {}
pub trait INSSplitView: Sized + std::ops::Deref {
    unsafe fn drawDividerInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawDividerInRect : rect)
    }
    unsafe fn adjustSubviews(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, adjustSubviews)
    }
    unsafe fn isSubviewCollapsed_(&self, subview: NSView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isSubviewCollapsed : subview)
    }
    unsafe fn minPossiblePositionOfDividerAtIndex_(&self, dividerIndex: NSInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, minPossiblePositionOfDividerAtIndex : dividerIndex)
    }
    unsafe fn maxPossiblePositionOfDividerAtIndex_(&self, dividerIndex: NSInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, maxPossiblePositionOfDividerAtIndex : dividerIndex)
    }
    unsafe fn setPosition_ofDividerAtIndex_(&self, position: CGFloat, dividerIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPosition : position, ofDividerAtIndex : dividerIndex)
    }
    unsafe fn holdingPriorityForSubviewAtIndex_(&self, subviewIndex: NSInteger) -> NSLayoutPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, holdingPriorityForSubviewAtIndex : subviewIndex)
    }
    unsafe fn setHoldingPriority_forSubviewAtIndex_(
        &self,
        priority: NSLayoutPriority,
        subviewIndex: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHoldingPriority : priority, forSubviewAtIndex : subviewIndex)
    }
    unsafe fn isVertical(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVertical)
    }
    unsafe fn setVertical_(&self, vertical: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVertical : vertical)
    }
    unsafe fn dividerStyle(&self) -> NSSplitViewDividerStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dividerStyle)
    }
    unsafe fn setDividerStyle_(&self, dividerStyle: NSSplitViewDividerStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDividerStyle : dividerStyle)
    }
    unsafe fn autosaveName(&self) -> NSSplitViewAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosaveName)
    }
    unsafe fn setAutosaveName_(&self, autosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosaveName : autosaveName)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn dividerColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dividerColor)
    }
    unsafe fn dividerThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dividerThickness)
    }
}
impl NSSplitView_NSSplitViewArrangedSubviews for NSSplitView {}
pub trait PNSSplitViewDelegate: Sized + std::ops::Deref {
    unsafe fn splitView_canCollapseSubview_(&self, splitView: NSSplitView, subview: NSView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, canCollapseSubview : subview)
    }
    unsafe fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        subview: NSView,
        dividerIndex: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, shouldCollapseSubview : subview, forDoubleClickOnDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView_constrainMinCoordinate_ofSubviewAt_(
        &self,
        splitView: NSSplitView,
        proposedMinimumPosition: CGFloat,
        dividerIndex: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, constrainMinCoordinate : proposedMinimumPosition, ofSubviewAt : dividerIndex)
    }
    unsafe fn splitView_constrainMaxCoordinate_ofSubviewAt_(
        &self,
        splitView: NSSplitView,
        proposedMaximumPosition: CGFloat,
        dividerIndex: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, constrainMaxCoordinate : proposedMaximumPosition, ofSubviewAt : dividerIndex)
    }
    unsafe fn splitView_constrainSplitPosition_ofSubviewAt_(
        &self,
        splitView: NSSplitView,
        proposedPosition: CGFloat,
        dividerIndex: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, constrainSplitPosition : proposedPosition, ofSubviewAt : dividerIndex)
    }
    unsafe fn splitView_resizeSubviewsWithOldSize_(&self, splitView: NSSplitView, oldSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, resizeSubviewsWithOldSize : oldSize)
    }
    unsafe fn splitView_shouldAdjustSizeOfSubview_(
        &self,
        splitView: NSSplitView,
        view: NSView,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, shouldAdjustSizeOfSubview : view)
    }
    unsafe fn splitView_shouldHideDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        dividerIndex: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, shouldHideDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        proposedEffectiveRect: NSRect,
        drawnRect: NSRect,
        dividerIndex: NSInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, effectiveRect : proposedEffectiveRect, forDrawnRect : drawnRect, ofDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView_additionalEffectiveRectOfDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        dividerIndex: NSInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, additionalEffectiveRectOfDividerAtIndex : dividerIndex)
    }
    unsafe fn splitViewWillResizeSubviews_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitViewWillResizeSubviews : notification)
    }
    unsafe fn splitViewDidResizeSubviews_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitViewDidResizeSubviews : notification)
    }
}
impl NSSplitView_NSDeprecated for NSSplitView {}
pub type NSSplitViewItemBehavior = NSInteger;
pub type NSSplitViewItemCollapseBehavior = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSplitViewItem(pub id);
impl std::ops::Deref for NSSplitViewItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSplitViewItem {}
impl NSSplitViewItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewItem").unwrap(), alloc) })
    }
}
impl PNSAnimatablePropertyContainer for NSSplitViewItem {}
impl PNSCoding for NSSplitViewItem {}
impl INSObject for NSSplitViewItem {}
impl PNSObject for NSSplitViewItem {}
impl std::convert::TryFrom<NSObject> for NSSplitViewItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSplitViewItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSplitViewItem").unwrap()) };
        if is_kind_of {
            Ok(NSSplitViewItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSplitViewItem")
        }
    }
}
impl INSSplitViewItem for NSSplitViewItem {}
pub trait INSSplitViewItem: Sized + std::ops::Deref {
    unsafe fn addTopAlignedAccessoryViewController_(
        &self,
        childViewController: NSSplitViewItemAccessoryViewController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTopAlignedAccessoryViewController : childViewController)
    }
    unsafe fn insertTopAlignedAccessoryViewController_atIndex_(
        &self,
        childViewController: NSSplitViewItemAccessoryViewController,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertTopAlignedAccessoryViewController : childViewController, atIndex : index)
    }
    unsafe fn removeTopAlignedAccessoryViewControllerAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTopAlignedAccessoryViewControllerAtIndex : index)
    }
    unsafe fn addBottomAlignedAccessoryViewController_(
        &self,
        childViewController: NSSplitViewItemAccessoryViewController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addBottomAlignedAccessoryViewController : childViewController)
    }
    unsafe fn insertBottomAlignedAccessoryViewController_atIndex_(
        &self,
        childViewController: NSSplitViewItemAccessoryViewController,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertBottomAlignedAccessoryViewController : childViewController, atIndex : index)
    }
    unsafe fn removeBottomAlignedAccessoryViewControllerAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeBottomAlignedAccessoryViewControllerAtIndex : index)
    }
    unsafe fn behavior(&self) -> NSSplitViewItemBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, behavior)
    }
    unsafe fn viewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewController)
    }
    unsafe fn setViewController_(&self, viewController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setViewController : viewController)
    }
    unsafe fn isCollapsed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCollapsed)
    }
    unsafe fn setCollapsed_(&self, collapsed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsed : collapsed)
    }
    unsafe fn canCollapse(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canCollapse)
    }
    unsafe fn setCanCollapse_(&self, canCollapse: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanCollapse : canCollapse)
    }
    unsafe fn collapseBehavior(&self) -> NSSplitViewItemCollapseBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapseBehavior)
    }
    unsafe fn setCollapseBehavior_(&self, collapseBehavior: NSSplitViewItemCollapseBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapseBehavior : collapseBehavior)
    }
    unsafe fn minimumThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumThickness)
    }
    unsafe fn setMinimumThickness_(&self, minimumThickness: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumThickness : minimumThickness)
    }
    unsafe fn maximumThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumThickness)
    }
    unsafe fn setMaximumThickness_(&self, maximumThickness: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumThickness : maximumThickness)
    }
    unsafe fn preferredThicknessFraction(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredThicknessFraction)
    }
    unsafe fn setPreferredThicknessFraction_(&self, preferredThicknessFraction: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredThicknessFraction : preferredThicknessFraction)
    }
    unsafe fn holdingPriority(&self) -> NSLayoutPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, holdingPriority)
    }
    unsafe fn setHoldingPriority_(&self, holdingPriority: NSLayoutPriority)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHoldingPriority : holdingPriority)
    }
    unsafe fn automaticMaximumThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticMaximumThickness)
    }
    unsafe fn setAutomaticMaximumThickness_(&self, automaticMaximumThickness: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticMaximumThickness : automaticMaximumThickness)
    }
    unsafe fn isSpringLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSpringLoaded)
    }
    unsafe fn setSpringLoaded_(&self, springLoaded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpringLoaded : springLoaded)
    }
    unsafe fn canCollapseFromWindowResize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canCollapseFromWindowResize)
    }
    unsafe fn setCanCollapseFromWindowResize_(&self, canCollapseFromWindowResize: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanCollapseFromWindowResize : canCollapseFromWindowResize)
    }
    unsafe fn allowsFullHeightLayout(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsFullHeightLayout)
    }
    unsafe fn setAllowsFullHeightLayout_(&self, allowsFullHeightLayout: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsFullHeightLayout : allowsFullHeightLayout)
    }
    unsafe fn titlebarSeparatorStyle(&self) -> NSTitlebarSeparatorStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titlebarSeparatorStyle)
    }
    unsafe fn setTitlebarSeparatorStyle_(&self, titlebarSeparatorStyle: NSTitlebarSeparatorStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitlebarSeparatorStyle : titlebarSeparatorStyle)
    }
    unsafe fn automaticallyAdjustsSafeAreaInsets(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyAdjustsSafeAreaInsets)
    }
    unsafe fn setAutomaticallyAdjustsSafeAreaInsets_(
        &self,
        automaticallyAdjustsSafeAreaInsets: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyAdjustsSafeAreaInsets : automaticallyAdjustsSafeAreaInsets)
    }
    unsafe fn topAlignedAccessoryViewControllers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, topAlignedAccessoryViewControllers)
    }
    unsafe fn setTopAlignedAccessoryViewControllers_(
        &self,
        topAlignedAccessoryViewControllers: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTopAlignedAccessoryViewControllers : topAlignedAccessoryViewControllers)
    }
    unsafe fn bottomAlignedAccessoryViewControllers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bottomAlignedAccessoryViewControllers)
    }
    unsafe fn setBottomAlignedAccessoryViewControllers_(
        &self,
        bottomAlignedAccessoryViewControllers: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBottomAlignedAccessoryViewControllers : bottomAlignedAccessoryViewControllers)
    }
    unsafe fn splitViewItemWithViewController_(viewController: NSViewController) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewItem").unwrap(), splitViewItemWithViewController : viewController)
    }
    unsafe fn sidebarWithViewController_(viewController: NSViewController) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewItem").unwrap(), sidebarWithViewController : viewController)
    }
    unsafe fn contentListWithViewController_(viewController: NSViewController) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewItem").unwrap(), contentListWithViewController : viewController)
    }
    unsafe fn inspectorWithViewController_(viewController: NSViewController) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewItem").unwrap(), inspectorWithViewController : viewController)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSplitViewController(pub id);
impl std::ops::Deref for NSSplitViewController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSplitViewController {}
impl NSSplitViewController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewController").unwrap(), alloc) })
    }
}
impl PNSSplitViewDelegate for NSSplitViewController {}
impl PNSUserInterfaceValidations for NSSplitViewController {}
impl INSViewController for NSSplitViewController {}
impl PNSEditor for NSSplitViewController {}
impl PNSSeguePerforming for NSSplitViewController {}
impl PNSUserInterfaceItemIdentification for NSSplitViewController {}
impl std::convert::TryFrom<NSViewController> for NSSplitViewController {
    type Error = &'static str;
    fn try_from(parent: NSViewController) -> Result<NSSplitViewController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSplitViewController").unwrap()) };
        if is_kind_of {
            Ok(NSSplitViewController(parent.0))
        } else {
            Err("This NSViewController cannot be downcasted to NSSplitViewController")
        }
    }
}
impl INSResponder for NSSplitViewController {}
impl PNSCoding for NSSplitViewController {}
impl INSObject for NSSplitViewController {}
impl PNSObject for NSSplitViewController {}
impl INSSplitViewController for NSSplitViewController {}
pub trait INSSplitViewController: Sized + std::ops::Deref {
    unsafe fn addSplitViewItem_(&self, splitViewItem: NSSplitViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSplitViewItem : splitViewItem)
    }
    unsafe fn insertSplitViewItem_atIndex_(&self, splitViewItem: NSSplitViewItem, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertSplitViewItem : splitViewItem, atIndex : index)
    }
    unsafe fn removeSplitViewItem_(&self, splitViewItem: NSSplitViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeSplitViewItem : splitViewItem)
    }
    unsafe fn splitViewItemForViewController_(
        &self,
        viewController: NSViewController,
    ) -> NSSplitViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitViewItemForViewController : viewController)
    }
    unsafe fn validateUserInterfaceItem_(&self, item: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateUserInterfaceItem : item)
    }
    unsafe fn viewDidLoad(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidLoad)
    }
    unsafe fn splitView_canCollapseSubview_(&self, splitView: NSSplitView, subview: NSView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, canCollapseSubview : subview)
    }
    unsafe fn splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        subview: NSView,
        dividerIndex: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, shouldCollapseSubview : subview, forDoubleClickOnDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView_shouldHideDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        dividerIndex: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, shouldHideDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        proposedEffectiveRect: NSRect,
        drawnRect: NSRect,
        dividerIndex: NSInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, effectiveRect : proposedEffectiveRect, forDrawnRect : drawnRect, ofDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView_additionalEffectiveRectOfDividerAtIndex_(
        &self,
        splitView: NSSplitView,
        dividerIndex: NSInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, splitView : splitView, additionalEffectiveRectOfDividerAtIndex : dividerIndex)
    }
    unsafe fn splitView(&self) -> NSSplitView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, splitView)
    }
    unsafe fn setSplitView_(&self, splitView: NSSplitView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSplitView : splitView)
    }
    unsafe fn splitViewItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, splitViewItems)
    }
    unsafe fn setSplitViewItems_(&self, splitViewItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSplitViewItems : splitViewItems)
    }
    unsafe fn minimumThicknessForInlineSidebars(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumThicknessForInlineSidebars)
    }
    unsafe fn setMinimumThicknessForInlineSidebars_(
        &self,
        minimumThicknessForInlineSidebars: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumThicknessForInlineSidebars : minimumThicknessForInlineSidebars)
    }
}
impl NSSplitViewController_NSSplitViewControllerToggleSidebarAction for NSSplitViewController {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrollEdgeEffectStyle(pub id);
impl std::ops::Deref for NSScrollEdgeEffectStyle {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrollEdgeEffectStyle {}
impl NSScrollEdgeEffectStyle {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollEdgeEffectStyle").unwrap(), alloc) })
    }
}
impl INSObject for NSScrollEdgeEffectStyle {}
impl PNSObject for NSScrollEdgeEffectStyle {}
impl std::convert::TryFrom<NSObject> for NSScrollEdgeEffectStyle {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSScrollEdgeEffectStyle, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrollEdgeEffectStyle").unwrap()) };
        if is_kind_of {
            Ok(NSScrollEdgeEffectStyle(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSScrollEdgeEffectStyle")
        }
    }
}
impl INSScrollEdgeEffectStyle for NSScrollEdgeEffectStyle {}
pub trait INSScrollEdgeEffectStyle: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollEdgeEffectStyle").unwrap(), new)
    }
    unsafe fn automaticStyle() -> NSScrollEdgeEffectStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollEdgeEffectStyle").unwrap(), automaticStyle)
    }
    unsafe fn softStyle() -> NSScrollEdgeEffectStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollEdgeEffectStyle").unwrap(), softStyle)
    }
    unsafe fn hardStyle() -> NSScrollEdgeEffectStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollEdgeEffectStyle").unwrap(), hardStyle)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSplitViewItemAccessoryViewController(pub id);
impl std::ops::Deref for NSSplitViewItemAccessoryViewController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSplitViewItemAccessoryViewController {}
impl NSSplitViewItemAccessoryViewController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSplitViewItemAccessoryViewController").unwrap(), alloc) })
    }
}
impl PNSAnimatablePropertyContainer for NSSplitViewItemAccessoryViewController {}
impl INSViewController for NSSplitViewItemAccessoryViewController {}
impl PNSEditor for NSSplitViewItemAccessoryViewController {}
impl PNSSeguePerforming for NSSplitViewItemAccessoryViewController {}
impl PNSUserInterfaceItemIdentification for NSSplitViewItemAccessoryViewController {}
impl std::convert::TryFrom<NSViewController> for NSSplitViewItemAccessoryViewController {
    type Error = &'static str;
    fn try_from(
        parent: NSViewController,
    ) -> Result<NSSplitViewItemAccessoryViewController, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSplitViewItemAccessoryViewController").unwrap())
        };
        if is_kind_of {
            Ok(NSSplitViewItemAccessoryViewController(parent.0))
        } else {
            Err ("This NSViewController cannot be downcasted to NSSplitViewItemAccessoryViewController" ,)
        }
    }
}
impl INSResponder for NSSplitViewItemAccessoryViewController {}
impl PNSCoding for NSSplitViewItemAccessoryViewController {}
impl INSObject for NSSplitViewItemAccessoryViewController {}
impl PNSObject for NSSplitViewItemAccessoryViewController {}
impl INSSplitViewItemAccessoryViewController for NSSplitViewItemAccessoryViewController {}
pub trait INSSplitViewItemAccessoryViewController: Sized + std::ops::Deref {
    unsafe fn viewWillAppear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillAppear)
    }
    unsafe fn viewDidAppear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidAppear)
    }
    unsafe fn viewWillDisappear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillDisappear)
    }
    unsafe fn viewDidDisappear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidDisappear)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn automaticallyAppliesContentInsets(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyAppliesContentInsets)
    }
    unsafe fn setAutomaticallyAppliesContentInsets_(&self, automaticallyAppliesContentInsets: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyAppliesContentInsets : automaticallyAppliesContentInsets)
    }
    unsafe fn preferredScrollEdgeEffectStyle(&self) -> NSScrollEdgeEffectStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredScrollEdgeEffectStyle)
    }
    unsafe fn setPreferredScrollEdgeEffectStyle_(
        &self,
        preferredScrollEdgeEffectStyle: NSScrollEdgeEffectStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredScrollEdgeEffectStyle : preferredScrollEdgeEffectStyle)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSavePanel(pub id);
impl std::ops::Deref for NSSavePanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSavePanel {}
impl NSSavePanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSavePanel").unwrap(), alloc) })
    }
}
impl INSPanel for NSSavePanel {}
impl std::convert::TryFrom<NSPanel> for NSSavePanel {
    type Error = &'static str;
    fn try_from(parent: NSPanel) -> Result<NSSavePanel, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSavePanel").unwrap()) };
        if is_kind_of {
            Ok(NSSavePanel(parent.0))
        } else {
            Err("This NSPanel cannot be downcasted to NSSavePanel")
        }
    }
}
impl INSWindow for NSSavePanel {}
impl PNSAnimatablePropertyContainer for NSSavePanel {}
impl PNSMenuItemValidation for NSSavePanel {}
impl PNSUserInterfaceValidations for NSSavePanel {}
impl PNSUserInterfaceItemIdentification for NSSavePanel {}
impl PNSAppearanceCustomization for NSSavePanel {}
impl PNSAccessibilityElement for NSSavePanel {}
impl PNSAccessibility for NSSavePanel {}
impl INSResponder for NSSavePanel {}
impl PNSCoding for NSSavePanel {}
impl INSObject for NSSavePanel {}
impl PNSObject for NSSavePanel {}
impl INSSavePanel for NSSavePanel {}
pub trait INSSavePanel: Sized + std::ops::Deref {
    unsafe fn validateVisibleColumns(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validateVisibleColumns)
    }
    unsafe fn ok_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ok : sender)
    }
    unsafe fn cancel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cancel : sender)
    }
    unsafe fn beginSheetModalForWindow_completionHandler_(
        &self,
        window: NSWindow,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetModalForWindow : window, completionHandler : handler)
    }
    unsafe fn beginWithCompletionHandler_(&self, handler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginWithCompletionHandler : handler)
    }
    unsafe fn runModal(&self) -> NSModalResponse
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, runModal)
    }
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
    unsafe fn identifier(&self) -> NSUserInterfaceItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
    unsafe fn directoryURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, directoryURL)
    }
    unsafe fn setDirectoryURL_(&self, directoryURL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDirectoryURL : directoryURL)
    }
    unsafe fn allowedContentTypes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedContentTypes)
    }
    unsafe fn setAllowedContentTypes_(&self, allowedContentTypes: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedContentTypes : allowedContentTypes)
    }
    unsafe fn allowsOtherFileTypes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsOtherFileTypes)
    }
    unsafe fn setAllowsOtherFileTypes_(&self, allowsOtherFileTypes: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsOtherFileTypes : allowsOtherFileTypes)
    }
    unsafe fn currentContentType(&self) -> UTType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentContentType)
    }
    unsafe fn setCurrentContentType_(&self, currentContentType: UTType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCurrentContentType : currentContentType)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isExpanded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isExpanded)
    }
    unsafe fn canCreateDirectories(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canCreateDirectories)
    }
    unsafe fn setCanCreateDirectories_(&self, canCreateDirectories: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanCreateDirectories : canCreateDirectories)
    }
    unsafe fn canSelectHiddenExtension(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canSelectHiddenExtension)
    }
    unsafe fn setCanSelectHiddenExtension_(&self, canSelectHiddenExtension: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanSelectHiddenExtension : canSelectHiddenExtension)
    }
    unsafe fn isExtensionHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isExtensionHidden)
    }
    unsafe fn setExtensionHidden_(&self, extensionHidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setExtensionHidden : extensionHidden)
    }
    unsafe fn treatsFilePackagesAsDirectories(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, treatsFilePackagesAsDirectories)
    }
    unsafe fn setTreatsFilePackagesAsDirectories_(&self, treatsFilePackagesAsDirectories: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTreatsFilePackagesAsDirectories : treatsFilePackagesAsDirectories)
    }
    unsafe fn prompt(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prompt)
    }
    unsafe fn setPrompt_(&self, prompt: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrompt : prompt)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn nameFieldLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameFieldLabel)
    }
    unsafe fn setNameFieldLabel_(&self, nameFieldLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNameFieldLabel : nameFieldLabel)
    }
    unsafe fn nameFieldStringValue(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nameFieldStringValue)
    }
    unsafe fn setNameFieldStringValue_(&self, nameFieldStringValue: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNameFieldStringValue : nameFieldStringValue)
    }
    unsafe fn message(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, message)
    }
    unsafe fn setMessage_(&self, message: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMessage : message)
    }
    unsafe fn showsHiddenFiles(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsHiddenFiles)
    }
    unsafe fn setShowsHiddenFiles_(&self, showsHiddenFiles: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsHiddenFiles : showsHiddenFiles)
    }
    unsafe fn showsTagField(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsTagField)
    }
    unsafe fn setShowsTagField_(&self, showsTagField: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsTagField : showsTagField)
    }
    unsafe fn tagNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tagNames)
    }
    unsafe fn setTagNames_(&self, tagNames: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTagNames : tagNames)
    }
    unsafe fn showsContentTypes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsContentTypes)
    }
    unsafe fn setShowsContentTypes_(&self, showsContentTypes: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsContentTypes : showsContentTypes)
    }
    unsafe fn savePanel() -> NSSavePanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSavePanel").unwrap(), savePanel)
    }
}
pub trait PNSOpenSavePanelDelegate: Sized + std::ops::Deref {
    unsafe fn panel_shouldEnableURL_(&self, sender: id, url: NSURL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, shouldEnableURL : url)
    }
    unsafe fn panel_validateURL_error_(
        &self,
        sender: id,
        url: NSURL,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, validateURL : url, error : outError)
    }
    unsafe fn panel_didChangeToDirectoryURL_(&self, sender: id, url: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, didChangeToDirectoryURL : url)
    }
    unsafe fn panel_userEnteredFilename_confirmed_(
        &self,
        sender: id,
        filename: NSString,
        okFlag: BOOL,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, userEnteredFilename : filename, confirmed : okFlag)
    }
    unsafe fn panel_willExpand_(&self, sender: id, expanding: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, willExpand : expanding)
    }
    unsafe fn panelSelectionDidChange_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panelSelectionDidChange : sender)
    }
    unsafe fn panel_displayNameForType_(&self, sender: id, type_: UTType) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, displayNameForType : type_)
    }
    unsafe fn panel_didSelectType_(&self, sender: id, type_: UTType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, panel : sender, didSelectType : type_)
    }
}
impl NSSavePanel_NSDeprecated for NSSavePanel {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOpenPanel(pub id);
impl std::ops::Deref for NSOpenPanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOpenPanel {}
impl NSOpenPanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenPanel").unwrap(), alloc) })
    }
}
impl INSSavePanel for NSOpenPanel {}
impl From<NSOpenPanel> for NSSavePanel {
    fn from(child: NSOpenPanel) -> NSSavePanel {
        NSSavePanel(child.0)
    }
}
impl std::convert::TryFrom<NSSavePanel> for NSOpenPanel {
    type Error = &'static str;
    fn try_from(parent: NSSavePanel) -> Result<NSOpenPanel, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOpenPanel").unwrap()) };
        if is_kind_of {
            Ok(NSOpenPanel(parent.0))
        } else {
            Err("This NSSavePanel cannot be downcasted to NSOpenPanel")
        }
    }
}
impl INSPanel for NSOpenPanel {}
impl INSWindow for NSOpenPanel {}
impl PNSAnimatablePropertyContainer for NSOpenPanel {}
impl PNSMenuItemValidation for NSOpenPanel {}
impl PNSUserInterfaceValidations for NSOpenPanel {}
impl PNSUserInterfaceItemIdentification for NSOpenPanel {}
impl PNSAppearanceCustomization for NSOpenPanel {}
impl PNSAccessibilityElement for NSOpenPanel {}
impl PNSAccessibility for NSOpenPanel {}
impl INSResponder for NSOpenPanel {}
impl PNSCoding for NSOpenPanel {}
impl INSObject for NSOpenPanel {}
impl PNSObject for NSOpenPanel {}
impl INSOpenPanel for NSOpenPanel {}
pub trait INSOpenPanel: Sized + std::ops::Deref {
    unsafe fn URLs(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URLs)
    }
    unsafe fn resolvesAliases(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resolvesAliases)
    }
    unsafe fn setResolvesAliases_(&self, resolvesAliases: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResolvesAliases : resolvesAliases)
    }
    unsafe fn canChooseDirectories(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canChooseDirectories)
    }
    unsafe fn setCanChooseDirectories_(&self, canChooseDirectories: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanChooseDirectories : canChooseDirectories)
    }
    unsafe fn allowsMultipleSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMultipleSelection)
    }
    unsafe fn setAllowsMultipleSelection_(&self, allowsMultipleSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsMultipleSelection : allowsMultipleSelection)
    }
    unsafe fn canChooseFiles(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canChooseFiles)
    }
    unsafe fn setCanChooseFiles_(&self, canChooseFiles: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanChooseFiles : canChooseFiles)
    }
    unsafe fn canResolveUbiquitousConflicts(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canResolveUbiquitousConflicts)
    }
    unsafe fn setCanResolveUbiquitousConflicts_(&self, canResolveUbiquitousConflicts: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanResolveUbiquitousConflicts : canResolveUbiquitousConflicts)
    }
    unsafe fn canDownloadUbiquitousContents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canDownloadUbiquitousContents)
    }
    unsafe fn setCanDownloadUbiquitousContents_(&self, canDownloadUbiquitousContents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanDownloadUbiquitousContents : canDownloadUbiquitousContents)
    }
    unsafe fn isAccessoryViewDisclosed(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isAccessoryViewDisclosed)
    }
    unsafe fn setAccessoryViewDisclosed_(&self, accessoryViewDisclosed: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryViewDisclosed : accessoryViewDisclosed)
    }
    unsafe fn openPanel() -> NSOpenPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenPanel").unwrap(), openPanel)
    }
}
impl NSOpenPanel_InheritedAndUnavailable for NSOpenPanel {}
impl NSOpenPanel_NSDeprecated for NSOpenPanel {}
pub type NSPageLayoutResult = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPageLayout(pub id);
impl std::ops::Deref for NSPageLayout {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPageLayout {}
impl NSPageLayout {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPageLayout").unwrap(), alloc) })
    }
}
impl INSObject for NSPageLayout {}
impl PNSObject for NSPageLayout {}
impl std::convert::TryFrom<NSObject> for NSPageLayout {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPageLayout, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPageLayout").unwrap()) };
        if is_kind_of {
            Ok(NSPageLayout(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPageLayout")
        }
    }
}
impl INSPageLayout for NSPageLayout {}
pub trait INSPageLayout: Sized + std::ops::Deref {
    unsafe fn addAccessoryController_(&self, accessoryController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addAccessoryController : accessoryController)
    }
    unsafe fn removeAccessoryController_(&self, accessoryController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeAccessoryController : accessoryController)
    }
    unsafe fn beginSheetUsingPrintInfo_onWindow_completionHandler_(
        &self,
        printInfo: NSPrintInfo,
        parentWindow: NSWindow,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetUsingPrintInfo : printInfo, onWindow : parentWindow, completionHandler : handler)
    }
    unsafe fn beginSheetWithPrintInfo_modalForWindow_delegate_didEndSelector_contextInfo_(
        &self,
        printInfo: NSPrintInfo,
        docWindow: NSWindow,
        delegate: id,
        didEndSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetWithPrintInfo : printInfo, modalForWindow : docWindow, delegate : delegate, didEndSelector : didEndSelector, contextInfo : contextInfo)
    }
    unsafe fn runModalWithPrintInfo_(&self, printInfo: NSPrintInfo) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalWithPrintInfo : printInfo)
    }
    unsafe fn runModal(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, runModal)
    }
    unsafe fn accessoryControllers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryControllers)
    }
    unsafe fn printInfo(&self) -> NSPrintInfo
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printInfo)
    }
    unsafe fn pageLayout() -> NSPageLayout
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPageLayout").unwrap(), pageLayout)
    }
}
impl NSPageLayout_NSDeprecated for NSPageLayout {}
impl NSApplication_NSPageLayoutPanel for NSApplication {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPasteboardItem(pub id);
impl std::ops::Deref for NSPasteboardItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPasteboardItem {}
impl NSPasteboardItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPasteboardItem").unwrap(), alloc) })
    }
}
impl PNSPasteboardWriting for NSPasteboardItem {}
impl PNSPasteboardReading for NSPasteboardItem {}
impl INSObject for NSPasteboardItem {}
impl PNSObject for NSPasteboardItem {}
impl std::convert::TryFrom<NSObject> for NSPasteboardItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPasteboardItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPasteboardItem").unwrap()) };
        if is_kind_of {
            Ok(NSPasteboardItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPasteboardItem")
        }
    }
}
impl INSPasteboardItem for NSPasteboardItem {}
pub trait INSPasteboardItem: Sized + std::ops::Deref {
    unsafe fn availableTypeFromArray_(&self, types: NSArray) -> NSPasteboardType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, availableTypeFromArray : types)
    }
    unsafe fn setDataProvider_forTypes_(&self, dataProvider: *mut u64, types: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataProvider : dataProvider, forTypes : types)
    }
    unsafe fn setData_forType_(&self, data: NSData, type_: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setData : data, forType : type_)
    }
    unsafe fn setString_forType_(&self, string: NSString, type_: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setString : string, forType : type_)
    }
    unsafe fn setPropertyList_forType_(&self, propertyList: id, type_: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPropertyList : propertyList, forType : type_)
    }
    unsafe fn dataForType_(&self, type_: NSString) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dataForType : type_)
    }
    unsafe fn stringForType_(&self, type_: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stringForType : type_)
    }
    unsafe fn propertyListForType_(&self, type_: NSString) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, propertyListForType : type_)
    }
    unsafe fn detectPatternsForPatterns_completionHandler_(
        &self,
        patterns: NSSet,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detectPatternsForPatterns : patterns, completionHandler : completionHandler)
    }
    unsafe fn detectValuesForPatterns_completionHandler_(
        &self,
        patterns: NSSet,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detectValuesForPatterns : patterns, completionHandler : completionHandler)
    }
    unsafe fn detectMetadataForTypes_completionHandler_(
        &self,
        types: NSSet,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, detectMetadataForTypes : types, completionHandler : completionHandler)
    }
    unsafe fn types(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, types)
    }
}
pub trait PNSPasteboardItemDataProvider: Sized + std::ops::Deref {
    unsafe fn pasteboard_item_provideDataForType_(
        &self,
        pasteboard: NSPasteboard,
        item: NSPasteboardItem,
        type_: NSString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteboard : pasteboard, item : item, provideDataForType : type_)
    }
    unsafe fn pasteboardFinishedWithDataProvider_(&self, pasteboard: NSPasteboard)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pasteboardFinishedWithDataProvider : pasteboard)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPopoverTouchBarItem(pub id);
impl std::ops::Deref for NSPopoverTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPopoverTouchBarItem {}
impl NSPopoverTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopoverTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSPopoverTouchBarItem {}
impl PNSCoding for NSPopoverTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSPopoverTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSPopoverTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPopoverTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSPopoverTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSPopoverTouchBarItem")
        }
    }
}
impl INSObject for NSPopoverTouchBarItem {}
impl PNSObject for NSPopoverTouchBarItem {}
impl INSPopoverTouchBarItem for NSPopoverTouchBarItem {}
pub trait INSPopoverTouchBarItem: Sized + std::ops::Deref {
    unsafe fn showPopover_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showPopover : sender)
    }
    unsafe fn dismissPopover_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dismissPopover : sender)
    }
    unsafe fn makeStandardActivatePopoverGestureRecognizer(&self) -> NSGestureRecognizer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeStandardActivatePopoverGestureRecognizer)
    }
    unsafe fn popoverTouchBar(&self) -> NSTouchBar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, popoverTouchBar)
    }
    unsafe fn setPopoverTouchBar_(&self, popoverTouchBar: NSTouchBar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPopoverTouchBar : popoverTouchBar)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
    unsafe fn collapsedRepresentation(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapsedRepresentation)
    }
    unsafe fn setCollapsedRepresentation_(&self, collapsedRepresentation: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsedRepresentation : collapsedRepresentation)
    }
    unsafe fn collapsedRepresentationImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapsedRepresentationImage)
    }
    unsafe fn setCollapsedRepresentationImage_(&self, collapsedRepresentationImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsedRepresentationImage : collapsedRepresentationImage)
    }
    unsafe fn collapsedRepresentationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapsedRepresentationLabel)
    }
    unsafe fn setCollapsedRepresentationLabel_(&self, collapsedRepresentationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsedRepresentationLabel : collapsedRepresentationLabel)
    }
    unsafe fn pressAndHoldTouchBar(&self) -> NSTouchBar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pressAndHoldTouchBar)
    }
    unsafe fn setPressAndHoldTouchBar_(&self, pressAndHoldTouchBar: NSTouchBar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPressAndHoldTouchBar : pressAndHoldTouchBar)
    }
    unsafe fn showsCloseButton(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsCloseButton)
    }
    unsafe fn setShowsCloseButton_(&self, showsCloseButton: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsCloseButton : showsCloseButton)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMenuItemCell(pub id);
impl std::ops::Deref for NSMenuItemCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMenuItemCell {}
impl NSMenuItemCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuItemCell").unwrap(), alloc) })
    }
}
impl INSButtonCell for NSMenuItemCell {}
impl From<NSMenuItemCell> for NSButtonCell {
    fn from(child: NSMenuItemCell) -> NSButtonCell {
        NSButtonCell(child.0)
    }
}
impl std::convert::TryFrom<NSButtonCell> for NSMenuItemCell {
    type Error = &'static str;
    fn try_from(parent: NSButtonCell) -> Result<NSMenuItemCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMenuItemCell").unwrap()) };
        if is_kind_of {
            Ok(NSMenuItemCell(parent.0))
        } else {
            Err("This NSButtonCell cannot be downcasted to NSMenuItemCell")
        }
    }
}
impl INSActionCell for NSMenuItemCell {}
impl INSCell for NSMenuItemCell {}
impl PNSCopying for NSMenuItemCell {}
impl PNSCoding for NSMenuItemCell {}
impl PNSUserInterfaceItemIdentification for NSMenuItemCell {}
impl PNSAccessibilityElement for NSMenuItemCell {}
impl PNSAccessibility for NSMenuItemCell {}
impl INSObject for NSMenuItemCell {}
impl PNSObject for NSMenuItemCell {}
impl INSMenuItemCell for NSMenuItemCell {}
pub trait INSMenuItemCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn calcSize(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, calcSize)
    }
    unsafe fn stateImageRectForBounds_(&self, cellFrame: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stateImageRectForBounds : cellFrame)
    }
    unsafe fn titleRectForBounds_(&self, cellFrame: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, titleRectForBounds : cellFrame)
    }
    unsafe fn keyEquivalentRectForBounds_(&self, cellFrame: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, keyEquivalentRectForBounds : cellFrame)
    }
    unsafe fn drawSeparatorItemWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawSeparatorItemWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn drawStateImageWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawStateImageWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn drawImageWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawImageWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn drawTitleWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawTitleWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn drawKeyEquivalentWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawKeyEquivalentWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn drawBorderAndBackgroundWithFrame_inView_(
        &self,
        cellFrame: NSRect,
        controlView: NSView,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBorderAndBackgroundWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn menuItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menuItem)
    }
    unsafe fn setMenuItem_(&self, menuItem: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenuItem : menuItem)
    }
    unsafe fn needsSizing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, needsSizing)
    }
    unsafe fn setNeedsSizing_(&self, needsSizing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeedsSizing : needsSizing)
    }
    unsafe fn needsDisplay(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, needsDisplay)
    }
    unsafe fn setNeedsDisplay_(&self, needsDisplay: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeedsDisplay : needsDisplay)
    }
    unsafe fn stateImageWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stateImageWidth)
    }
    unsafe fn imageWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageWidth)
    }
    unsafe fn titleWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleWidth)
    }
    unsafe fn keyEquivalentWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyEquivalentWidth)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn setTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag)
    }
}
pub type NSPopUpArrowPosition = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPopUpButtonCell(pub id);
impl std::ops::Deref for NSPopUpButtonCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPopUpButtonCell {}
impl NSPopUpButtonCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopUpButtonCell").unwrap(), alloc) })
    }
}
impl PNSMenuItemValidation for NSPopUpButtonCell {}
impl INSMenuItemCell for NSPopUpButtonCell {}
impl From<NSPopUpButtonCell> for NSMenuItemCell {
    fn from(child: NSPopUpButtonCell) -> NSMenuItemCell {
        NSMenuItemCell(child.0)
    }
}
impl std::convert::TryFrom<NSMenuItemCell> for NSPopUpButtonCell {
    type Error = &'static str;
    fn try_from(parent: NSMenuItemCell) -> Result<NSPopUpButtonCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPopUpButtonCell").unwrap()) };
        if is_kind_of {
            Ok(NSPopUpButtonCell(parent.0))
        } else {
            Err("This NSMenuItemCell cannot be downcasted to NSPopUpButtonCell")
        }
    }
}
impl INSButtonCell for NSPopUpButtonCell {}
impl INSActionCell for NSPopUpButtonCell {}
impl INSCell for NSPopUpButtonCell {}
impl PNSCopying for NSPopUpButtonCell {}
impl PNSCoding for NSPopUpButtonCell {}
impl PNSUserInterfaceItemIdentification for NSPopUpButtonCell {}
impl PNSAccessibilityElement for NSPopUpButtonCell {}
impl PNSAccessibility for NSPopUpButtonCell {}
impl INSObject for NSPopUpButtonCell {}
impl PNSObject for NSPopUpButtonCell {}
impl INSPopUpButtonCell for NSPopUpButtonCell {}
pub trait INSPopUpButtonCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_pullsDown_(&self, stringValue: NSString, pullDown: BOOL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : stringValue, pullsDown : pullDown)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn addItemWithTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemWithTitle : title)
    }
    unsafe fn addItemsWithTitles_(&self, itemTitles: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemsWithTitles : itemTitles)
    }
    unsafe fn insertItemWithTitle_atIndex_(&self, title: NSString, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemWithTitle : title, atIndex : index)
    }
    unsafe fn removeItemWithTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemWithTitle : title)
    }
    unsafe fn removeItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemAtIndex : index)
    }
    unsafe fn removeAllItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllItems)
    }
    unsafe fn indexOfItem_(&self, item: NSMenuItem) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItem : item)
    }
    unsafe fn indexOfItemWithTitle_(&self, title: NSString) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTitle : title)
    }
    unsafe fn indexOfItemWithTag_(&self, tag: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTag : tag)
    }
    unsafe fn indexOfItemWithRepresentedObject_(&self, obj: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithRepresentedObject : obj)
    }
    unsafe fn indexOfItemWithTarget_andAction_(
        &self,
        target: id,
        actionSelector: objc2::runtime::Sel,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTarget : target, andAction : actionSelector)
    }
    unsafe fn itemAtIndex_(&self, index: NSInteger) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtIndex : index)
    }
    unsafe fn itemWithTitle_(&self, title: NSString) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemWithTitle : title)
    }
    unsafe fn selectItem_(&self, item: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItem : item)
    }
    unsafe fn selectItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemAtIndex : index)
    }
    unsafe fn selectItemWithTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemWithTitle : title)
    }
    unsafe fn selectItemWithTag_(&self, tag: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemWithTag : tag)
    }
    unsafe fn setTitle_(&self, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : string)
    }
    unsafe fn synchronizeTitleAndSelectedItem(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, synchronizeTitleAndSelectedItem)
    }
    unsafe fn itemTitleAtIndex_(&self, index: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemTitleAtIndex : index)
    }
    unsafe fn attachPopUpWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachPopUpWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn dismissPopUp(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dismissPopUp)
    }
    unsafe fn performClickWithFrame_inView_(&self, frame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performClickWithFrame : frame, inView : controlView)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn pullsDown(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pullsDown)
    }
    unsafe fn setPullsDown_(&self, pullsDown: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPullsDown : pullsDown)
    }
    unsafe fn autoenablesItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autoenablesItems)
    }
    unsafe fn setAutoenablesItems_(&self, autoenablesItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoenablesItems : autoenablesItems)
    }
    unsafe fn preferredEdge(&self) -> NSRectEdge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredEdge)
    }
    unsafe fn setPreferredEdge_(&self, preferredEdge: NSRectEdge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredEdge : preferredEdge)
    }
    unsafe fn usesItemFromMenu(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesItemFromMenu)
    }
    unsafe fn setUsesItemFromMenu_(&self, usesItemFromMenu: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesItemFromMenu : usesItemFromMenu)
    }
    unsafe fn altersStateOfSelectedItem(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, altersStateOfSelectedItem)
    }
    unsafe fn setAltersStateOfSelectedItem_(&self, altersStateOfSelectedItem: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAltersStateOfSelectedItem : altersStateOfSelectedItem)
    }
    unsafe fn itemArray(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemArray)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn lastItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lastItem)
    }
    unsafe fn selectedItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedItem)
    }
    unsafe fn indexOfSelectedItem(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexOfSelectedItem)
    }
    unsafe fn itemTitles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemTitles)
    }
    unsafe fn titleOfSelectedItem(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleOfSelectedItem)
    }
    unsafe fn arrowPosition(&self) -> NSPopUpArrowPosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrowPosition)
    }
    unsafe fn setArrowPosition_(&self, arrowPosition: NSPopUpArrowPosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setArrowPosition : arrowPosition)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPopUpButton(pub id);
impl std::ops::Deref for NSPopUpButton {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPopUpButton {}
impl NSPopUpButton {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopUpButton").unwrap(), alloc) })
    }
}
impl INSButton for NSPopUpButton {}
impl PNSUserInterfaceValidations for NSPopUpButton {}
impl PNSAccessibilityButton for NSPopUpButton {}
impl PNSUserInterfaceCompression for NSPopUpButton {}
impl From<NSPopUpButton> for NSButton {
    fn from(child: NSPopUpButton) -> NSButton {
        NSButton(child.0)
    }
}
impl std::convert::TryFrom<NSButton> for NSPopUpButton {
    type Error = &'static str;
    fn try_from(parent: NSButton) -> Result<NSPopUpButton, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPopUpButton").unwrap()) };
        if is_kind_of {
            Ok(NSPopUpButton(parent.0))
        } else {
            Err("This NSButton cannot be downcasted to NSPopUpButton")
        }
    }
}
impl INSControl for NSPopUpButton {}
impl INSView for NSPopUpButton {}
impl PNSAnimatablePropertyContainer for NSPopUpButton {}
impl PNSUserInterfaceItemIdentification for NSPopUpButton {}
impl PNSDraggingDestination for NSPopUpButton {}
impl PNSAppearanceCustomization for NSPopUpButton {}
impl PNSAccessibilityElement for NSPopUpButton {}
impl PNSAccessibility for NSPopUpButton {}
impl INSResponder for NSPopUpButton {}
impl PNSCoding for NSPopUpButton {}
impl INSObject for NSPopUpButton {}
impl PNSObject for NSPopUpButton {}
impl INSPopUpButton for NSPopUpButton {}
pub trait INSPopUpButton: Sized + std::ops::Deref {
    unsafe fn initWithFrame_pullsDown_(&self, buttonFrame: NSRect, flag: BOOL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : buttonFrame, pullsDown : flag)
    }
    unsafe fn addItemWithTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemWithTitle : title)
    }
    unsafe fn addItemsWithTitles_(&self, itemTitles: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemsWithTitles : itemTitles)
    }
    unsafe fn insertItemWithTitle_atIndex_(&self, title: NSString, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemWithTitle : title, atIndex : index)
    }
    unsafe fn removeItemWithTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemWithTitle : title)
    }
    unsafe fn removeItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemAtIndex : index)
    }
    unsafe fn removeAllItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllItems)
    }
    unsafe fn indexOfItem_(&self, item: NSMenuItem) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItem : item)
    }
    unsafe fn indexOfItemWithTitle_(&self, title: NSString) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTitle : title)
    }
    unsafe fn indexOfItemWithTag_(&self, tag: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTag : tag)
    }
    unsafe fn indexOfItemWithRepresentedObject_(&self, obj: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithRepresentedObject : obj)
    }
    unsafe fn indexOfItemWithTarget_andAction_(
        &self,
        target: id,
        actionSelector: objc2::runtime::Sel,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithTarget : target, andAction : actionSelector)
    }
    unsafe fn itemAtIndex_(&self, index: NSInteger) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtIndex : index)
    }
    unsafe fn itemWithTitle_(&self, title: NSString) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemWithTitle : title)
    }
    unsafe fn selectItem_(&self, item: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItem : item)
    }
    unsafe fn selectItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemAtIndex : index)
    }
    unsafe fn selectItemWithTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemWithTitle : title)
    }
    unsafe fn selectItemWithTag_(&self, tag: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemWithTag : tag)
    }
    unsafe fn setTitle_(&self, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : string)
    }
    unsafe fn synchronizeTitleAndSelectedItem(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, synchronizeTitleAndSelectedItem)
    }
    unsafe fn itemTitleAtIndex_(&self, index: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemTitleAtIndex : index)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn pullsDown(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pullsDown)
    }
    unsafe fn setPullsDown_(&self, pullsDown: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPullsDown : pullsDown)
    }
    unsafe fn autoenablesItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autoenablesItems)
    }
    unsafe fn setAutoenablesItems_(&self, autoenablesItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoenablesItems : autoenablesItems)
    }
    unsafe fn preferredEdge(&self) -> NSRectEdge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredEdge)
    }
    unsafe fn setPreferredEdge_(&self, preferredEdge: NSRectEdge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredEdge : preferredEdge)
    }
    unsafe fn usesItemFromMenu(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesItemFromMenu)
    }
    unsafe fn setUsesItemFromMenu_(&self, usesItemFromMenu: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesItemFromMenu : usesItemFromMenu)
    }
    unsafe fn altersStateOfSelectedItem(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, altersStateOfSelectedItem)
    }
    unsafe fn setAltersStateOfSelectedItem_(&self, altersStateOfSelectedItem: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAltersStateOfSelectedItem : altersStateOfSelectedItem)
    }
    unsafe fn itemArray(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemArray)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn lastItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lastItem)
    }
    unsafe fn selectedItem(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedItem)
    }
    unsafe fn indexOfSelectedItem(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexOfSelectedItem)
    }
    unsafe fn selectedTag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedTag)
    }
    unsafe fn itemTitles(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemTitles)
    }
    unsafe fn titleOfSelectedItem(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, titleOfSelectedItem)
    }
    unsafe fn popUpButtonWithMenu_target_action_(
        menu: NSMenu,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopUpButton").unwrap(), popUpButtonWithMenu : menu, target : target, action : action)
    }
    unsafe fn pullDownButtonWithTitle_menu_(title: NSString, menu: NSMenu) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopUpButton").unwrap(), pullDownButtonWithTitle : title, menu : menu)
    }
    unsafe fn pullDownButtonWithImage_menu_(image: NSImage, menu: NSMenu) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopUpButton").unwrap(), pullDownButtonWithImage : image, menu : menu)
    }
    unsafe fn pullDownButtonWithTitle_image_menu_(
        title: NSString,
        image: NSImage,
        menu: NSMenu,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPopUpButton").unwrap(), pullDownButtonWithTitle : title, image : image, menu : menu)
    }
}
pub type NSPrintingPageOrder = NSInteger;
pub type NSPrintRenderingQuality = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPrintOperation(pub id);
impl std::ops::Deref for NSPrintOperation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPrintOperation {}
impl NSPrintOperation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), alloc) })
    }
}
impl INSObject for NSPrintOperation {}
impl PNSObject for NSPrintOperation {}
impl std::convert::TryFrom<NSObject> for NSPrintOperation {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPrintOperation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap()) };
        if is_kind_of {
            Ok(NSPrintOperation(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPrintOperation")
        }
    }
}
impl INSPrintOperation for NSPrintOperation {}
pub trait INSPrintOperation: Sized + std::ops::Deref {
    unsafe fn runOperationModalForWindow_delegate_didRunSelector_contextInfo_(
        &self,
        docWindow: NSWindow,
        delegate: id,
        didRunSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runOperationModalForWindow : docWindow, delegate : delegate, didRunSelector : didRunSelector, contextInfo : contextInfo)
    }
    unsafe fn runOperation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, runOperation)
    }
    unsafe fn createContext(&self) -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, createContext)
    }
    unsafe fn destroyContext(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, destroyContext)
    }
    unsafe fn deliverResult(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deliverResult)
    }
    unsafe fn cleanUpOperation(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cleanUpOperation)
    }
    unsafe fn isCopyingOperation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isCopyingOperation)
    }
    unsafe fn preferredRenderingQuality(&self) -> NSPrintRenderingQuality
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredRenderingQuality)
    }
    unsafe fn jobTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, jobTitle)
    }
    unsafe fn setJobTitle_(&self, jobTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setJobTitle : jobTitle)
    }
    unsafe fn showsPrintPanel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsPrintPanel)
    }
    unsafe fn setShowsPrintPanel_(&self, showsPrintPanel: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsPrintPanel : showsPrintPanel)
    }
    unsafe fn showsProgressPanel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsProgressPanel)
    }
    unsafe fn setShowsProgressPanel_(&self, showsProgressPanel: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsProgressPanel : showsProgressPanel)
    }
    unsafe fn printPanel(&self) -> NSPrintPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printPanel)
    }
    unsafe fn setPrintPanel_(&self, printPanel: NSPrintPanel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrintPanel : printPanel)
    }
    unsafe fn PDFPanel(&self) -> NSPDFPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PDFPanel)
    }
    unsafe fn setPDFPanel_(&self, PDFPanel: NSPDFPanel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPDFPanel : PDFPanel)
    }
    unsafe fn canSpawnSeparateThread(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canSpawnSeparateThread)
    }
    unsafe fn setCanSpawnSeparateThread_(&self, canSpawnSeparateThread: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanSpawnSeparateThread : canSpawnSeparateThread)
    }
    unsafe fn pageOrder(&self) -> NSPrintingPageOrder
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pageOrder)
    }
    unsafe fn setPageOrder_(&self, pageOrder: NSPrintingPageOrder)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPageOrder : pageOrder)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn printInfo(&self) -> NSPrintInfo
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printInfo)
    }
    unsafe fn setPrintInfo_(&self, printInfo: NSPrintInfo)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrintInfo : printInfo)
    }
    unsafe fn context(&self) -> NSGraphicsContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, context)
    }
    unsafe fn pageRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pageRange)
    }
    unsafe fn currentPage(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentPage)
    }
    unsafe fn printOperationWithView_printInfo_(
        view: NSView,
        printInfo: NSPrintInfo,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), printOperationWithView : view, printInfo : printInfo)
    }
    unsafe fn PDFOperationWithView_insideRect_toData_printInfo_(
        view: NSView,
        rect: NSRect,
        data: NSMutableData,
        printInfo: NSPrintInfo,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), PDFOperationWithView : view, insideRect : rect, toData : data, printInfo : printInfo)
    }
    unsafe fn PDFOperationWithView_insideRect_toPath_printInfo_(
        view: NSView,
        rect: NSRect,
        path: NSString,
        printInfo: NSPrintInfo,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), PDFOperationWithView : view, insideRect : rect, toPath : path, printInfo : printInfo)
    }
    unsafe fn EPSOperationWithView_insideRect_toData_printInfo_(
        view: NSView,
        rect: NSRect,
        data: NSMutableData,
        printInfo: NSPrintInfo,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), EPSOperationWithView : view, insideRect : rect, toData : data, printInfo : printInfo)
    }
    unsafe fn EPSOperationWithView_insideRect_toPath_printInfo_(
        view: NSView,
        rect: NSRect,
        path: NSString,
        printInfo: NSPrintInfo,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), EPSOperationWithView : view, insideRect : rect, toPath : path, printInfo : printInfo)
    }
    unsafe fn printOperationWithView_(view: NSView) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), printOperationWithView : view)
    }
    unsafe fn PDFOperationWithView_insideRect_toData_(
        view: NSView,
        rect: NSRect,
        data: NSMutableData,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), PDFOperationWithView : view, insideRect : rect, toData : data)
    }
    unsafe fn EPSOperationWithView_insideRect_toData_(
        view: NSView,
        rect: NSRect,
        data: NSMutableData,
    ) -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), EPSOperationWithView : view, insideRect : rect, toData : data)
    }
    unsafe fn currentOperation() -> NSPrintOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), currentOperation)
    }
    unsafe fn setCurrentOperation_(currentOperation: NSPrintOperation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintOperation").unwrap(), setCurrentOperation : currentOperation)
    }
}
impl NSPrintOperation_NSDeprecated for NSPrintOperation {}
pub type NSPrintPanelResult = NSInteger;
pub type NSPrintPanelOptions = NSUInteger;
pub type NSPrintPanelAccessorySummaryKey = NSString;
pub trait PNSPrintPanelAccessorizing: Sized + std::ops::Deref {
    unsafe fn localizedSummaryItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedSummaryItems)
    }
    unsafe fn keyPathsForValuesAffectingPreview(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyPathsForValuesAffectingPreview)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPrintPanel(pub id);
impl std::ops::Deref for NSPrintPanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPrintPanel {}
impl NSPrintPanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintPanel").unwrap(), alloc) })
    }
}
impl INSObject for NSPrintPanel {}
impl PNSObject for NSPrintPanel {}
impl std::convert::TryFrom<NSObject> for NSPrintPanel {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPrintPanel, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPrintPanel").unwrap()) };
        if is_kind_of {
            Ok(NSPrintPanel(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPrintPanel")
        }
    }
}
impl INSPrintPanel for NSPrintPanel {}
pub trait INSPrintPanel: Sized + std::ops::Deref {
    unsafe fn addAccessoryController_(&self, accessoryController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addAccessoryController : accessoryController)
    }
    unsafe fn removeAccessoryController_(&self, accessoryController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeAccessoryController : accessoryController)
    }
    unsafe fn setDefaultButtonTitle_(&self, defaultButtonTitle: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultButtonTitle : defaultButtonTitle)
    }
    unsafe fn defaultButtonTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultButtonTitle)
    }
    unsafe fn beginSheetUsingPrintInfo_onWindow_completionHandler_(
        &self,
        printInfo: NSPrintInfo,
        parentWindow: NSWindow,
        handler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetUsingPrintInfo : printInfo, onWindow : parentWindow, completionHandler : handler)
    }
    unsafe fn beginSheetWithPrintInfo_modalForWindow_delegate_didEndSelector_contextInfo_(
        &self,
        printInfo: NSPrintInfo,
        docWindow: NSWindow,
        delegate: id,
        didEndSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetWithPrintInfo : printInfo, modalForWindow : docWindow, delegate : delegate, didEndSelector : didEndSelector, contextInfo : contextInfo)
    }
    unsafe fn runModalWithPrintInfo_(&self, printInfo: NSPrintInfo) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runModalWithPrintInfo : printInfo)
    }
    unsafe fn runModal(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, runModal)
    }
    unsafe fn accessoryControllers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryControllers)
    }
    unsafe fn options(&self) -> NSPrintPanelOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, options)
    }
    unsafe fn setOptions_(&self, options: NSPrintPanelOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOptions : options)
    }
    unsafe fn helpAnchor(&self) -> NSHelpAnchorName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, helpAnchor)
    }
    unsafe fn setHelpAnchor_(&self, helpAnchor: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHelpAnchor : helpAnchor)
    }
    unsafe fn jobStyleHint(&self) -> NSPrintPanelJobStyleHint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, jobStyleHint)
    }
    unsafe fn setJobStyleHint_(&self, jobStyleHint: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setJobStyleHint : jobStyleHint)
    }
    unsafe fn printInfo(&self) -> NSPrintInfo
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, printInfo)
    }
    unsafe fn printPanel() -> NSPrintPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPrintPanel").unwrap(), printPanel)
    }
}
impl NSPrintPanel_NSDeprecated for NSPrintPanel {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPDFInfo(pub id);
impl std::ops::Deref for NSPDFInfo {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPDFInfo {}
impl NSPDFInfo {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPDFInfo").unwrap(), alloc) })
    }
}
impl PNSCopying for NSPDFInfo {}
impl PNSCoding for NSPDFInfo {}
impl INSObject for NSPDFInfo {}
impl PNSObject for NSPDFInfo {}
impl std::convert::TryFrom<NSObject> for NSPDFInfo {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPDFInfo, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPDFInfo").unwrap()) };
        if is_kind_of {
            Ok(NSPDFInfo(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPDFInfo")
        }
    }
}
impl INSPDFInfo for NSPDFInfo {}
pub trait INSPDFInfo: Sized + std::ops::Deref {
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
    unsafe fn setURL_(&self, URL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setURL : URL)
    }
    unsafe fn isFileExtensionHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFileExtensionHidden)
    }
    unsafe fn setFileExtensionHidden_(&self, fileExtensionHidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFileExtensionHidden : fileExtensionHidden)
    }
    unsafe fn tagNames(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tagNames)
    }
    unsafe fn setTagNames_(&self, tagNames: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTagNames : tagNames)
    }
    unsafe fn orientation(&self) -> NSPaperOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, orientation)
    }
    unsafe fn setOrientation_(&self, orientation: NSPaperOrientation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOrientation : orientation)
    }
    unsafe fn paperSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paperSize)
    }
    unsafe fn setPaperSize_(&self, paperSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaperSize : paperSize)
    }
    unsafe fn attributes(&self) -> NSMutableDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributes)
    }
}
pub type NSPDFPanelOptions = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPDFPanel(pub id);
impl std::ops::Deref for NSPDFPanel {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPDFPanel {}
impl NSPDFPanel {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPDFPanel").unwrap(), alloc) })
    }
}
impl INSObject for NSPDFPanel {}
impl PNSObject for NSPDFPanel {}
impl std::convert::TryFrom<NSObject> for NSPDFPanel {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPDFPanel, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPDFPanel").unwrap()) };
        if is_kind_of {
            Ok(NSPDFPanel(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPDFPanel")
        }
    }
}
impl INSPDFPanel for NSPDFPanel {}
pub trait INSPDFPanel: Sized + std::ops::Deref {
    unsafe fn beginSheetWithPDFInfo_modalForWindow_completionHandler_(
        &self,
        pdfInfo: NSPDFInfo,
        docWindow: NSWindow,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginSheetWithPDFInfo : pdfInfo, modalForWindow : docWindow, completionHandler : completionHandler)
    }
    unsafe fn accessoryController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryController)
    }
    unsafe fn setAccessoryController_(&self, accessoryController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryController : accessoryController)
    }
    unsafe fn options(&self) -> NSPDFPanelOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, options)
    }
    unsafe fn setOptions_(&self, options: NSPDFPanelOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOptions : options)
    }
    unsafe fn defaultFileName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultFileName)
    }
    unsafe fn setDefaultFileName_(&self, defaultFileName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultFileName : defaultFileName)
    }
    unsafe fn panel() -> NSPDFPanel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPDFPanel").unwrap(), panel)
    }
}
pub type NSMediaLibrary = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMediaLibraryBrowserController(pub id);
impl std::ops::Deref for NSMediaLibraryBrowserController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMediaLibraryBrowserController {}
impl NSMediaLibraryBrowserController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMediaLibraryBrowserController").unwrap(), alloc) })
    }
}
impl INSObject for NSMediaLibraryBrowserController {}
impl PNSObject for NSMediaLibraryBrowserController {}
impl std::convert::TryFrom<NSObject> for NSMediaLibraryBrowserController {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSMediaLibraryBrowserController, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMediaLibraryBrowserController").unwrap())
        };
        if is_kind_of {
            Ok(NSMediaLibraryBrowserController(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSMediaLibraryBrowserController")
        }
    }
}
impl INSMediaLibraryBrowserController for NSMediaLibraryBrowserController {}
pub trait INSMediaLibraryBrowserController: Sized + std::ops::Deref {
    unsafe fn togglePanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, togglePanel : sender)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
    unsafe fn setVisible_(&self, visible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisible : visible)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn setFrame_(&self, frame: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFrame : frame)
    }
    unsafe fn mediaLibraries(&self) -> NSMediaLibrary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mediaLibraries)
    }
    unsafe fn setMediaLibraries_(&self, mediaLibraries: NSMediaLibrary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMediaLibraries : mediaLibraries)
    }
    unsafe fn sharedMediaLibraryBrowserController() -> NSMediaLibraryBrowserController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSMediaLibraryBrowserController").unwrap(), sharedMediaLibraryBrowserController)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScreen(pub id);
impl std::ops::Deref for NSScreen {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScreen {}
impl NSScreen {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScreen").unwrap(), alloc) })
    }
}
impl INSObject for NSScreen {}
impl PNSObject for NSScreen {}
impl std::convert::TryFrom<NSObject> for NSScreen {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSScreen, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScreen").unwrap()) };
        if is_kind_of {
            Ok(NSScreen(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSScreen")
        }
    }
}
impl INSScreen for NSScreen {}
pub trait INSScreen: Sized + std::ops::Deref {
    unsafe fn canRepresentDisplayGamut_(&self, displayGamut: NSDisplayGamut) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canRepresentDisplayGamut : displayGamut)
    }
    unsafe fn convertRectToBacking_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectToBacking : rect)
    }
    unsafe fn convertRectFromBacking_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, convertRectFromBacking : rect)
    }
    unsafe fn backingAlignedRect_options_(
        &self,
        rect: NSRect,
        options: NSAlignmentOptions,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, backingAlignedRect : rect, options : options)
    }
    unsafe fn depth(&self) -> NSWindowDepth
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, depth)
    }
    unsafe fn frame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, frame)
    }
    unsafe fn visibleFrame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleFrame)
    }
    unsafe fn deviceDescription(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deviceDescription)
    }
    unsafe fn colorSpace(&self) -> NSColorSpace
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, colorSpace)
    }
    unsafe fn supportedWindowDepths(&self) -> *const NSWindowDepth
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supportedWindowDepths)
    }
    unsafe fn backingScaleFactor(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backingScaleFactor)
    }
    unsafe fn localizedName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedName)
    }
    unsafe fn safeAreaInsets(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, safeAreaInsets)
    }
    unsafe fn auxiliaryTopLeftArea(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, auxiliaryTopLeftArea)
    }
    unsafe fn auxiliaryTopRightArea(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, auxiliaryTopRightArea)
    }
    unsafe fn CGDirectDisplayID(&self) -> CGDirectDisplayID
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGDirectDisplayID)
    }
    unsafe fn screens() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScreen").unwrap(), screens)
    }
    unsafe fn mainScreen() -> NSScreen
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScreen").unwrap(), mainScreen)
    }
    unsafe fn deepestScreen() -> NSScreen
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScreen").unwrap(), deepestScreen)
    }
    unsafe fn screensHaveSeparateSpaces() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScreen").unwrap(), screensHaveSeparateSpaces)
    }
}
impl NSScreen_ for NSScreen {}
impl NSScreen_NSDisplayLink for NSScreen {}
impl NSScreen_NSDeprecated for NSScreen {}
pub type NSUsableScrollerParts = NSUInteger;
pub type NSScrollerPart = NSUInteger;
pub type NSScrollerStyle = NSInteger;
pub type NSScrollerKnobStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScroller(pub id);
impl std::ops::Deref for NSScroller {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScroller {}
impl NSScroller {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScroller").unwrap(), alloc) })
    }
}
impl INSControl for NSScroller {}
impl std::convert::TryFrom<NSControl> for NSScroller {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSScroller, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScroller").unwrap()) };
        if is_kind_of {
            Ok(NSScroller(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSScroller")
        }
    }
}
impl INSView for NSScroller {}
impl PNSAnimatablePropertyContainer for NSScroller {}
impl PNSUserInterfaceItemIdentification for NSScroller {}
impl PNSDraggingDestination for NSScroller {}
impl PNSAppearanceCustomization for NSScroller {}
impl PNSAccessibilityElement for NSScroller {}
impl PNSAccessibility for NSScroller {}
impl INSResponder for NSScroller {}
impl PNSCoding for NSScroller {}
impl INSObject for NSScroller {}
impl PNSObject for NSScroller {}
impl INSScroller for NSScroller {}
pub trait INSScroller: Sized + std::ops::Deref {
    unsafe fn rectForPart_(&self, partCode: NSScrollerPart) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectForPart : partCode)
    }
    unsafe fn checkSpaceForParts(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, checkSpaceForParts)
    }
    unsafe fn drawKnob(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawKnob)
    }
    unsafe fn drawKnobSlotInRect_highlight_(&self, slotRect: NSRect, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawKnobSlotInRect : slotRect, highlight : flag)
    }
    unsafe fn testPart_(&self, point: NSPoint) -> NSScrollerPart
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, testPart : point)
    }
    unsafe fn trackKnob_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackKnob : event)
    }
    unsafe fn setKnobProportion_(&self, proportion: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKnobProportion : proportion)
    }
    unsafe fn scrollerStyle(&self) -> NSScrollerStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollerStyle)
    }
    unsafe fn setScrollerStyle_(&self, scrollerStyle: NSScrollerStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollerStyle : scrollerStyle)
    }
    unsafe fn knobStyle(&self) -> NSScrollerKnobStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, knobStyle)
    }
    unsafe fn setKnobStyle_(&self, knobStyle: NSScrollerKnobStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKnobStyle : knobStyle)
    }
    unsafe fn usableParts(&self) -> NSUsableScrollerParts
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usableParts)
    }
    unsafe fn controlSize(&self) -> NSControlSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlSize)
    }
    unsafe fn setControlSize_(&self, controlSize: NSControlSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlSize : controlSize)
    }
    unsafe fn hitPart(&self) -> NSScrollerPart
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hitPart)
    }
    unsafe fn knobProportion(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, knobProportion)
    }
    unsafe fn scrollerWidthForControlSize_scrollerStyle_(
        controlSize: NSControlSize,
        scrollerStyle: NSScrollerStyle,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScroller").unwrap(), scrollerWidthForControlSize : controlSize, scrollerStyle : scrollerStyle)
    }
    unsafe fn isCompatibleWithOverlayScrollers() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScroller").unwrap(), isCompatibleWithOverlayScrollers)
    }
    unsafe fn preferredScrollerStyle() -> NSScrollerStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScroller").unwrap(), preferredScrollerStyle)
    }
}
pub type NSScrollArrowPosition = NSUInteger;
pub type NSScrollerArrow = NSUInteger;
impl NSScroller_NSDeprecated for NSScroller {}
pub type NSTextFinderAction = NSInteger;
pub type NSPasteboardTypeTextFinderOptionKey = NSString;
pub type NSTextFinderMatchingType = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextFinder(pub id);
impl std::ops::Deref for NSTextFinder {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextFinder {}
impl NSTextFinder {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextFinder").unwrap(), alloc) })
    }
}
impl PNSCoding for NSTextFinder {}
impl INSObject for NSTextFinder {}
impl PNSObject for NSTextFinder {}
impl std::convert::TryFrom<NSObject> for NSTextFinder {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextFinder, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextFinder").unwrap()) };
        if is_kind_of {
            Ok(NSTextFinder(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextFinder")
        }
    }
}
impl INSTextFinder for NSTextFinder {}
pub trait INSTextFinder: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn performAction_(&self, op: NSTextFinderAction)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performAction : op)
    }
    unsafe fn validateAction_(&self, op: NSTextFinderAction) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateAction : op)
    }
    unsafe fn cancelFindIndicator(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancelFindIndicator)
    }
    unsafe fn noteClientStringWillChange(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, noteClientStringWillChange)
    }
    unsafe fn client(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, client)
    }
    unsafe fn setClient_(&self, client: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setClient : client)
    }
    unsafe fn findBarContainer(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, findBarContainer)
    }
    unsafe fn setFindBarContainer_(&self, findBarContainer: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFindBarContainer : findBarContainer)
    }
    unsafe fn findIndicatorNeedsUpdate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, findIndicatorNeedsUpdate)
    }
    unsafe fn setFindIndicatorNeedsUpdate_(&self, findIndicatorNeedsUpdate: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFindIndicatorNeedsUpdate : findIndicatorNeedsUpdate)
    }
    unsafe fn isIncrementalSearchingEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isIncrementalSearchingEnabled)
    }
    unsafe fn setIncrementalSearchingEnabled_(&self, incrementalSearchingEnabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncrementalSearchingEnabled : incrementalSearchingEnabled)
    }
    unsafe fn incrementalSearchingShouldDimContentView(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, incrementalSearchingShouldDimContentView)
    }
    unsafe fn setIncrementalSearchingShouldDimContentView_(
        &self,
        incrementalSearchingShouldDimContentView: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncrementalSearchingShouldDimContentView : incrementalSearchingShouldDimContentView)
    }
    unsafe fn incrementalMatchRanges(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, incrementalMatchRanges)
    }
    unsafe fn drawIncrementalMatchHighlightInRect_(rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextFinder").unwrap(), drawIncrementalMatchHighlightInRect : rect)
    }
}
pub trait PNSTextFinderClient: Sized + std::ops::Deref {
    unsafe fn stringAtIndex_effectiveRange_endsWithSearchBoundary_(
        &self,
        characterIndex: NSUInteger,
        outRange: NSRangePointer,
        outFlag: *mut BOOL,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stringAtIndex : characterIndex, effectiveRange : outRange, endsWithSearchBoundary : outFlag)
    }
    unsafe fn stringLength(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stringLength)
    }
    unsafe fn scrollRangeToVisible_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollRangeToVisible : range)
    }
    unsafe fn shouldReplaceCharactersInRanges_withStrings_(
        &self,
        ranges: NSArray,
        strings: NSArray,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldReplaceCharactersInRanges : ranges, withStrings : strings)
    }
    unsafe fn replaceCharactersInRange_withString_(&self, range: NSRange, string: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceCharactersInRange : range, withString : string)
    }
    unsafe fn didReplaceCharacters(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, didReplaceCharacters)
    }
    unsafe fn contentViewAtIndex_effectiveCharacterRange_(
        &self,
        index: NSUInteger,
        outRange: NSRangePointer,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, contentViewAtIndex : index, effectiveCharacterRange : outRange)
    }
    unsafe fn rectsForCharacterRange_(&self, range: NSRange) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectsForCharacterRange : range)
    }
    unsafe fn drawCharactersInRange_forContentView_(&self, range: NSRange, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawCharactersInRange : range, forContentView : view)
    }
    unsafe fn isSelectable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectable)
    }
    unsafe fn allowsMultipleSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMultipleSelection)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn string(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, string)
    }
    unsafe fn firstSelectedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, firstSelectedRange)
    }
    unsafe fn selectedRanges(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRanges)
    }
    unsafe fn setSelectedRanges_(&self, selectedRanges: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedRanges : selectedRanges)
    }
    unsafe fn visibleCharacterRanges(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleCharacterRanges)
    }
}
pub trait PNSTextFinderBarContainer: Sized + std::ops::Deref {
    unsafe fn findBarViewDidChangeHeight(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, findBarViewDidChangeHeight)
    }
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn findBarView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, findBarView)
    }
    unsafe fn setFindBarView_(&self, findBarView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFindBarView : findBarView)
    }
    unsafe fn isFindBarVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFindBarVisible)
    }
    unsafe fn setFindBarVisible_(&self, findBarVisible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFindBarVisible : findBarVisible)
    }
}
pub type NSScrollElasticity = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSScrollView(pub id);
impl std::ops::Deref for NSScrollView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSScrollView {}
impl NSScrollView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollView").unwrap(), alloc) })
    }
}
impl PNSTextFinderBarContainer for NSScrollView {}
impl INSView for NSScrollView {}
impl PNSAnimatablePropertyContainer for NSScrollView {}
impl PNSUserInterfaceItemIdentification for NSScrollView {}
impl PNSDraggingDestination for NSScrollView {}
impl PNSAppearanceCustomization for NSScrollView {}
impl PNSAccessibilityElement for NSScrollView {}
impl PNSAccessibility for NSScrollView {}
impl std::convert::TryFrom<NSView> for NSScrollView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSScrollView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSScrollView").unwrap()) };
        if is_kind_of {
            Ok(NSScrollView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSScrollView")
        }
    }
}
impl INSResponder for NSScrollView {}
impl PNSCoding for NSScrollView {}
impl INSObject for NSScrollView {}
impl PNSObject for NSScrollView {}
impl INSScrollView for NSScrollView {}
pub trait INSScrollView: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn tile(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tile)
    }
    unsafe fn reflectScrolledClipView_(&self, cView: NSClipView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reflectScrolledClipView : cView)
    }
    unsafe fn scrollWheel_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollWheel : event)
    }
    unsafe fn flashScrollers(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flashScrollers)
    }
    unsafe fn magnifyToFitRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, magnifyToFitRect : rect)
    }
    unsafe fn setMagnification_centeredAtPoint_(&self, magnification: CGFloat, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMagnification : magnification, centeredAtPoint : point)
    }
    unsafe fn addFloatingSubview_forAxis_(&self, view: NSView, axis: NSEventGestureAxis)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addFloatingSubview : view, forAxis : axis)
    }
    unsafe fn documentVisibleRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentVisibleRect)
    }
    unsafe fn contentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentSize)
    }
    unsafe fn documentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentView)
    }
    unsafe fn setDocumentView_(&self, documentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocumentView : documentView)
    }
    unsafe fn contentView(&self) -> NSClipView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSClipView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn documentCursor(&self) -> NSCursor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentCursor)
    }
    unsafe fn setDocumentCursor_(&self, documentCursor: NSCursor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocumentCursor : documentCursor)
    }
    unsafe fn borderType(&self) -> NSBorderType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, borderType)
    }
    unsafe fn setBorderType_(&self, borderType: NSBorderType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderType : borderType)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn hasVerticalScroller(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasVerticalScroller)
    }
    unsafe fn setHasVerticalScroller_(&self, hasVerticalScroller: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasVerticalScroller : hasVerticalScroller)
    }
    unsafe fn hasHorizontalScroller(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasHorizontalScroller)
    }
    unsafe fn setHasHorizontalScroller_(&self, hasHorizontalScroller: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasHorizontalScroller : hasHorizontalScroller)
    }
    unsafe fn verticalScroller(&self) -> NSScroller
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalScroller)
    }
    unsafe fn setVerticalScroller_(&self, verticalScroller: NSScroller)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalScroller : verticalScroller)
    }
    unsafe fn horizontalScroller(&self) -> NSScroller
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, horizontalScroller)
    }
    unsafe fn setHorizontalScroller_(&self, horizontalScroller: NSScroller)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontalScroller : horizontalScroller)
    }
    unsafe fn autohidesScrollers(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autohidesScrollers)
    }
    unsafe fn setAutohidesScrollers_(&self, autohidesScrollers: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutohidesScrollers : autohidesScrollers)
    }
    unsafe fn horizontalLineScroll(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, horizontalLineScroll)
    }
    unsafe fn setHorizontalLineScroll_(&self, horizontalLineScroll: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontalLineScroll : horizontalLineScroll)
    }
    unsafe fn verticalLineScroll(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalLineScroll)
    }
    unsafe fn setVerticalLineScroll_(&self, verticalLineScroll: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalLineScroll : verticalLineScroll)
    }
    unsafe fn lineScroll(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineScroll)
    }
    unsafe fn setLineScroll_(&self, lineScroll: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineScroll : lineScroll)
    }
    unsafe fn horizontalPageScroll(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, horizontalPageScroll)
    }
    unsafe fn setHorizontalPageScroll_(&self, horizontalPageScroll: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontalPageScroll : horizontalPageScroll)
    }
    unsafe fn verticalPageScroll(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalPageScroll)
    }
    unsafe fn setVerticalPageScroll_(&self, verticalPageScroll: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalPageScroll : verticalPageScroll)
    }
    unsafe fn pageScroll(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pageScroll)
    }
    unsafe fn setPageScroll_(&self, pageScroll: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPageScroll : pageScroll)
    }
    unsafe fn scrollsDynamically(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollsDynamically)
    }
    unsafe fn setScrollsDynamically_(&self, scrollsDynamically: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollsDynamically : scrollsDynamically)
    }
    unsafe fn scrollerStyle(&self) -> NSScrollerStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollerStyle)
    }
    unsafe fn setScrollerStyle_(&self, scrollerStyle: NSScrollerStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollerStyle : scrollerStyle)
    }
    unsafe fn scrollerKnobStyle(&self) -> NSScrollerKnobStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollerKnobStyle)
    }
    unsafe fn setScrollerKnobStyle_(&self, scrollerKnobStyle: NSScrollerKnobStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollerKnobStyle : scrollerKnobStyle)
    }
    unsafe fn horizontalScrollElasticity(&self) -> NSScrollElasticity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, horizontalScrollElasticity)
    }
    unsafe fn setHorizontalScrollElasticity_(&self, horizontalScrollElasticity: NSScrollElasticity)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHorizontalScrollElasticity : horizontalScrollElasticity)
    }
    unsafe fn verticalScrollElasticity(&self) -> NSScrollElasticity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalScrollElasticity)
    }
    unsafe fn setVerticalScrollElasticity_(&self, verticalScrollElasticity: NSScrollElasticity)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalScrollElasticity : verticalScrollElasticity)
    }
    unsafe fn usesPredominantAxisScrolling(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesPredominantAxisScrolling)
    }
    unsafe fn setUsesPredominantAxisScrolling_(&self, usesPredominantAxisScrolling: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesPredominantAxisScrolling : usesPredominantAxisScrolling)
    }
    unsafe fn allowsMagnification(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMagnification)
    }
    unsafe fn setAllowsMagnification_(&self, allowsMagnification: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsMagnification : allowsMagnification)
    }
    unsafe fn magnification(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, magnification)
    }
    unsafe fn setMagnification_(&self, magnification: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMagnification : magnification)
    }
    unsafe fn maxMagnification(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxMagnification)
    }
    unsafe fn setMaxMagnification_(&self, maxMagnification: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxMagnification : maxMagnification)
    }
    unsafe fn minMagnification(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minMagnification)
    }
    unsafe fn setMinMagnification_(&self, minMagnification: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinMagnification : minMagnification)
    }
    unsafe fn automaticallyAdjustsContentInsets(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyAdjustsContentInsets)
    }
    unsafe fn setAutomaticallyAdjustsContentInsets_(&self, automaticallyAdjustsContentInsets: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyAdjustsContentInsets : automaticallyAdjustsContentInsets)
    }
    unsafe fn contentInsets(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentInsets)
    }
    unsafe fn setContentInsets_(&self, contentInsets: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentInsets : contentInsets)
    }
    unsafe fn scrollerInsets(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollerInsets)
    }
    unsafe fn setScrollerInsets_(&self, scrollerInsets: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollerInsets : scrollerInsets)
    }
    unsafe fn frameSizeForContentSize_horizontalScrollerClass_verticalScrollerClass_borderType_controlSize_scrollerStyle_(
        cSize: NSSize,
        horizontalScrollerClass: Class,
        verticalScrollerClass: Class,
        type_: NSBorderType,
        controlSize: NSControlSize,
        scrollerStyle: NSScrollerStyle,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollView").unwrap(), frameSizeForContentSize : cSize, horizontalScrollerClass : horizontalScrollerClass, verticalScrollerClass : verticalScrollerClass, borderType : type_, controlSize : controlSize, scrollerStyle : scrollerStyle)
    }
    unsafe fn contentSizeForFrameSize_horizontalScrollerClass_verticalScrollerClass_borderType_controlSize_scrollerStyle_(
        fSize: NSSize,
        horizontalScrollerClass: Class,
        verticalScrollerClass: Class,
        type_: NSBorderType,
        controlSize: NSControlSize,
        scrollerStyle: NSScrollerStyle,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollView").unwrap(), contentSizeForFrameSize : fSize, horizontalScrollerClass : horizontalScrollerClass, verticalScrollerClass : verticalScrollerClass, borderType : type_, controlSize : controlSize, scrollerStyle : scrollerStyle)
    }
    unsafe fn frameSizeForContentSize_hasHorizontalScroller_hasVerticalScroller_borderType_(
        cSize: NSSize,
        hFlag: BOOL,
        vFlag: BOOL,
        type_: NSBorderType,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollView").unwrap(), frameSizeForContentSize : cSize, hasHorizontalScroller : hFlag, hasVerticalScroller : vFlag, borderType : type_)
    }
    unsafe fn contentSizeForFrameSize_hasHorizontalScroller_hasVerticalScroller_borderType_(
        fSize: NSSize,
        hFlag: BOOL,
        vFlag: BOOL,
        type_: NSBorderType,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSScrollView").unwrap(), contentSizeForFrameSize : fSize, hasHorizontalScroller : hFlag, hasVerticalScroller : vFlag, borderType : type_)
    }
}
impl NSScrollView_NSRulerSupport for NSScrollView {}
pub type NSScrollViewFindBarPosition = NSInteger;
impl NSScrollView_NSFindBarSupport for NSScrollView {}
pub type NSSegmentSwitchTracking = NSUInteger;
pub type NSSegmentStyle = NSInteger;
pub type NSSegmentDistribution = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSegmentedControl(pub id);
impl std::ops::Deref for NSSegmentedControl {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSegmentedControl {}
impl NSSegmentedControl {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSegmentedControl").unwrap(), alloc) })
    }
}
impl PNSUserInterfaceCompression for NSSegmentedControl {}
impl INSControl for NSSegmentedControl {}
impl std::convert::TryFrom<NSControl> for NSSegmentedControl {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSSegmentedControl, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSegmentedControl").unwrap()) };
        if is_kind_of {
            Ok(NSSegmentedControl(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSSegmentedControl")
        }
    }
}
impl INSView for NSSegmentedControl {}
impl PNSAnimatablePropertyContainer for NSSegmentedControl {}
impl PNSUserInterfaceItemIdentification for NSSegmentedControl {}
impl PNSDraggingDestination for NSSegmentedControl {}
impl PNSAppearanceCustomization for NSSegmentedControl {}
impl PNSAccessibilityElement for NSSegmentedControl {}
impl PNSAccessibility for NSSegmentedControl {}
impl INSResponder for NSSegmentedControl {}
impl PNSCoding for NSSegmentedControl {}
impl INSObject for NSSegmentedControl {}
impl PNSObject for NSSegmentedControl {}
impl INSSegmentedControl for NSSegmentedControl {}
pub trait INSSegmentedControl: Sized + std::ops::Deref {
    unsafe fn selectSegmentWithTag_(&self, tag: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectSegmentWithTag : tag)
    }
    unsafe fn setWidth_forSegment_(&self, width: CGFloat, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : width, forSegment : segment)
    }
    unsafe fn widthForSegment_(&self, segment: NSInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, widthForSegment : segment)
    }
    unsafe fn setImage_forSegment_(&self, image: NSImage, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image, forSegment : segment)
    }
    unsafe fn imageForSegment_(&self, segment: NSInteger) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageForSegment : segment)
    }
    unsafe fn setImageScaling_forSegment_(&self, scaling: NSImageScaling, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : scaling, forSegment : segment)
    }
    unsafe fn imageScalingForSegment_(&self, segment: NSInteger) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageScalingForSegment : segment)
    }
    unsafe fn setLabel_forSegment_(&self, label: NSString, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label, forSegment : segment)
    }
    unsafe fn labelForSegment_(&self, segment: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, labelForSegment : segment)
    }
    unsafe fn setMenu_forSegment_(&self, menu: NSMenu, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu, forSegment : segment)
    }
    unsafe fn menuForSegment_(&self, segment: NSInteger) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuForSegment : segment)
    }
    unsafe fn setSelected_forSegment_(&self, selected: BOOL, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelected : selected, forSegment : segment)
    }
    unsafe fn isSelectedForSegment_(&self, segment: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isSelectedForSegment : segment)
    }
    unsafe fn setEnabled_forSegment_(&self, enabled: BOOL, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled, forSegment : segment)
    }
    unsafe fn isEnabledForSegment_(&self, segment: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isEnabledForSegment : segment)
    }
    unsafe fn setToolTip_forSegment_(&self, toolTip: NSString, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip, forSegment : segment)
    }
    unsafe fn toolTipForSegment_(&self, segment: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolTipForSegment : segment)
    }
    unsafe fn setTag_forSegment_(&self, tag: NSInteger, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag, forSegment : segment)
    }
    unsafe fn tagForSegment_(&self, segment: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tagForSegment : segment)
    }
    unsafe fn setShowsMenuIndicator_forSegment_(&self, showsMenuIndicator: BOOL, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsMenuIndicator : showsMenuIndicator, forSegment : segment)
    }
    unsafe fn showsMenuIndicatorForSegment_(&self, segment: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showsMenuIndicatorForSegment : segment)
    }
    unsafe fn setAlignment_forSegment_(&self, alignment: NSTextAlignment, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignment : alignment, forSegment : segment)
    }
    unsafe fn alignmentForSegment_(&self, segment: NSInteger) -> NSTextAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignmentForSegment : segment)
    }
    unsafe fn compressWithPrioritizedCompressionOptions_(&self, prioritizedOptions: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, compressWithPrioritizedCompressionOptions : prioritizedOptions)
    }
    unsafe fn minimumSizeWithPrioritizedCompressionOptions_(
        &self,
        prioritizedOptions: NSArray,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, minimumSizeWithPrioritizedCompressionOptions : prioritizedOptions)
    }
    unsafe fn segmentCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, segmentCount)
    }
    unsafe fn setSegmentCount_(&self, segmentCount: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSegmentCount : segmentCount)
    }
    unsafe fn selectedSegment(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedSegment)
    }
    unsafe fn setSelectedSegment_(&self, selectedSegment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedSegment : selectedSegment)
    }
    unsafe fn segmentStyle(&self) -> NSSegmentStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, segmentStyle)
    }
    unsafe fn setSegmentStyle_(&self, segmentStyle: NSSegmentStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSegmentStyle : segmentStyle)
    }
    unsafe fn isSpringLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSpringLoaded)
    }
    unsafe fn setSpringLoaded_(&self, springLoaded: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpringLoaded : springLoaded)
    }
    unsafe fn trackingMode(&self) -> NSSegmentSwitchTracking
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trackingMode)
    }
    unsafe fn setTrackingMode_(&self, trackingMode: NSSegmentSwitchTracking)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTrackingMode : trackingMode)
    }
    unsafe fn doubleValueForSelectedSegment(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleValueForSelectedSegment)
    }
    unsafe fn selectedSegmentBezelColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedSegmentBezelColor)
    }
    unsafe fn setSelectedSegmentBezelColor_(&self, selectedSegmentBezelColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedSegmentBezelColor : selectedSegmentBezelColor)
    }
    unsafe fn indexOfSelectedItem(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexOfSelectedItem)
    }
    unsafe fn segmentDistribution(&self) -> NSSegmentDistribution
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, segmentDistribution)
    }
    unsafe fn setSegmentDistribution_(&self, segmentDistribution: NSSegmentDistribution)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSegmentDistribution : segmentDistribution)
    }
    unsafe fn activeCompressionOptions(&self) -> NSUserInterfaceCompressionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activeCompressionOptions)
    }
    unsafe fn borderShape(&self) -> NSControlBorderShape
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, borderShape)
    }
    unsafe fn setBorderShape_(&self, borderShape: NSControlBorderShape)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderShape : borderShape)
    }
}
impl NSSegmentedControl_NSSegmentedControlConvenience for NSSegmentedControl {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSegmentedCell(pub id);
impl std::ops::Deref for NSSegmentedCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSegmentedCell {}
impl NSSegmentedCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSegmentedCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSSegmentedCell {}
impl std::convert::TryFrom<NSActionCell> for NSSegmentedCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSSegmentedCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSegmentedCell").unwrap()) };
        if is_kind_of {
            Ok(NSSegmentedCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSSegmentedCell")
        }
    }
}
impl INSCell for NSSegmentedCell {}
impl PNSCopying for NSSegmentedCell {}
impl PNSCoding for NSSegmentedCell {}
impl PNSUserInterfaceItemIdentification for NSSegmentedCell {}
impl PNSAccessibilityElement for NSSegmentedCell {}
impl PNSAccessibility for NSSegmentedCell {}
impl INSObject for NSSegmentedCell {}
impl PNSObject for NSSegmentedCell {}
impl INSSegmentedCell for NSSegmentedCell {}
pub trait INSSegmentedCell: Sized + std::ops::Deref {
    unsafe fn selectSegmentWithTag_(&self, tag: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectSegmentWithTag : tag)
    }
    unsafe fn makeNextSegmentKey(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeNextSegmentKey)
    }
    unsafe fn makePreviousSegmentKey(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makePreviousSegmentKey)
    }
    unsafe fn setWidth_forSegment_(&self, width: CGFloat, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : width, forSegment : segment)
    }
    unsafe fn widthForSegment_(&self, segment: NSInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, widthForSegment : segment)
    }
    unsafe fn setImage_forSegment_(&self, image: NSImage, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image, forSegment : segment)
    }
    unsafe fn imageForSegment_(&self, segment: NSInteger) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageForSegment : segment)
    }
    unsafe fn setImageScaling_forSegment_(&self, scaling: NSImageScaling, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : scaling, forSegment : segment)
    }
    unsafe fn imageScalingForSegment_(&self, segment: NSInteger) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageScalingForSegment : segment)
    }
    unsafe fn setLabel_forSegment_(&self, label: NSString, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label, forSegment : segment)
    }
    unsafe fn labelForSegment_(&self, segment: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, labelForSegment : segment)
    }
    unsafe fn setSelected_forSegment_(&self, selected: BOOL, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelected : selected, forSegment : segment)
    }
    unsafe fn isSelectedForSegment_(&self, segment: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isSelectedForSegment : segment)
    }
    unsafe fn setEnabled_forSegment_(&self, enabled: BOOL, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled, forSegment : segment)
    }
    unsafe fn isEnabledForSegment_(&self, segment: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isEnabledForSegment : segment)
    }
    unsafe fn setMenu_forSegment_(&self, menu: NSMenu, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu, forSegment : segment)
    }
    unsafe fn menuForSegment_(&self, segment: NSInteger) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuForSegment : segment)
    }
    unsafe fn setToolTip_forSegment_(&self, toolTip: NSString, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip, forSegment : segment)
    }
    unsafe fn toolTipForSegment_(&self, segment: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolTipForSegment : segment)
    }
    unsafe fn setTag_forSegment_(&self, tag: NSInteger, segment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag, forSegment : segment)
    }
    unsafe fn tagForSegment_(&self, segment: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tagForSegment : segment)
    }
    unsafe fn drawSegment_inFrame_withView_(
        &self,
        segment: NSInteger,
        frame: NSRect,
        controlView: NSView,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawSegment : segment, inFrame : frame, withView : controlView)
    }
    unsafe fn segmentCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, segmentCount)
    }
    unsafe fn setSegmentCount_(&self, segmentCount: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSegmentCount : segmentCount)
    }
    unsafe fn selectedSegment(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedSegment)
    }
    unsafe fn setSelectedSegment_(&self, selectedSegment: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedSegment : selectedSegment)
    }
    unsafe fn trackingMode(&self) -> NSSegmentSwitchTracking
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trackingMode)
    }
    unsafe fn setTrackingMode_(&self, trackingMode: NSSegmentSwitchTracking)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTrackingMode : trackingMode)
    }
    unsafe fn segmentStyle(&self) -> NSSegmentStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, segmentStyle)
    }
    unsafe fn setSegmentStyle_(&self, segmentStyle: NSSegmentStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSegmentStyle : segmentStyle)
    }
}
impl NSSegmentedCell_NSSegmentBackgroundStyle for NSSegmentedCell {}
pub type NSSharingCollaborationMode = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSharingCollaborationModeRestriction(pub id);
impl std::ops::Deref for NSSharingCollaborationModeRestriction {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSharingCollaborationModeRestriction {}
impl NSSharingCollaborationModeRestriction {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingCollaborationModeRestriction").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSSharingCollaborationModeRestriction {}
impl PNSCopying for NSSharingCollaborationModeRestriction {}
impl INSObject for NSSharingCollaborationModeRestriction {}
impl PNSObject for NSSharingCollaborationModeRestriction {}
impl std::convert::TryFrom<NSObject> for NSSharingCollaborationModeRestriction {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSharingCollaborationModeRestriction, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSharingCollaborationModeRestriction").unwrap())
        };
        if is_kind_of {
            Ok(NSSharingCollaborationModeRestriction(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSharingCollaborationModeRestriction")
        }
    }
}
impl INSSharingCollaborationModeRestriction for NSSharingCollaborationModeRestriction {}
pub trait INSSharingCollaborationModeRestriction: Sized + std::ops::Deref {
    unsafe fn initWithDisabledMode_(&self, disabledMode: NSSharingCollaborationMode) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDisabledMode : disabledMode)
    }
    unsafe fn initWithDisabledMode_alertTitle_alertMessage_(
        &self,
        disabledMode: NSSharingCollaborationMode,
        alertTitle: NSString,
        alertMessage: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDisabledMode : disabledMode, alertTitle : alertTitle, alertMessage : alertMessage)
    }
    unsafe fn initWithDisabledMode_alertTitle_alertMessage_alertDismissButtonTitle_(
        &self,
        disabledMode: NSSharingCollaborationMode,
        alertTitle: NSString,
        alertMessage: NSString,
        alertDismissButtonTitle: NSString,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDisabledMode : disabledMode, alertTitle : alertTitle, alertMessage : alertMessage, alertDismissButtonTitle : alertDismissButtonTitle)
    }
    unsafe fn initWithDisabledMode_alertTitle_alertMessage_alertDismissButtonTitle_alertRecoverySuggestionButtonTitle_alertRecoverySuggestionButtonLaunchURL_(
        &self,
        disabledMode: NSSharingCollaborationMode,
        alertTitle: NSString,
        alertMessage: NSString,
        alertDismissButtonTitle: NSString,
        alertRecoverySuggestionButtonTitle: NSString,
        alertRecoverySuggestionButtonLaunchURL: NSURL,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDisabledMode : disabledMode, alertTitle : alertTitle, alertMessage : alertMessage, alertDismissButtonTitle : alertDismissButtonTitle, alertRecoverySuggestionButtonTitle : alertRecoverySuggestionButtonTitle, alertRecoverySuggestionButtonLaunchURL : alertRecoverySuggestionButtonLaunchURL)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn disabledMode(&self) -> NSSharingCollaborationMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, disabledMode)
    }
    unsafe fn alertTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alertTitle)
    }
    unsafe fn alertMessage(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alertMessage)
    }
    unsafe fn alertDismissButtonTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alertDismissButtonTitle)
    }
    unsafe fn alertRecoverySuggestionButtonTitle(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alertRecoverySuggestionButtonTitle)
    }
    unsafe fn alertRecoverySuggestionButtonLaunchURL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alertRecoverySuggestionButtonLaunchURL)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingCollaborationModeRestriction").unwrap(), new)
    }
}
pub type NSTickMarkPosition = NSUInteger;
pub type NSSliderType = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSliderCell(pub id);
impl std::ops::Deref for NSSliderCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSliderCell {}
impl NSSliderCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSSliderCell {}
impl std::convert::TryFrom<NSActionCell> for NSSliderCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSSliderCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSliderCell").unwrap()) };
        if is_kind_of {
            Ok(NSSliderCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSSliderCell")
        }
    }
}
impl INSCell for NSSliderCell {}
impl PNSCopying for NSSliderCell {}
impl PNSCoding for NSSliderCell {}
impl PNSUserInterfaceItemIdentification for NSSliderCell {}
impl PNSAccessibilityElement for NSSliderCell {}
impl PNSAccessibility for NSSliderCell {}
impl INSObject for NSSliderCell {}
impl PNSObject for NSSliderCell {}
impl INSSliderCell for NSSliderCell {}
pub trait INSSliderCell: Sized + std::ops::Deref {
    unsafe fn knobRectFlipped_(&self, flipped: BOOL) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, knobRectFlipped : flipped)
    }
    unsafe fn barRectFlipped_(&self, flipped: BOOL) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, barRectFlipped : flipped)
    }
    unsafe fn drawKnob_(&self, knobRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawKnob : knobRect)
    }
    unsafe fn drawKnob(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawKnob)
    }
    unsafe fn drawBarInside_flipped_(&self, rect: NSRect, flipped: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBarInside : rect, flipped : flipped)
    }
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn altIncrementValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, altIncrementValue)
    }
    unsafe fn setAltIncrementValue_(&self, altIncrementValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAltIncrementValue : altIncrementValue)
    }
    unsafe fn sliderType(&self) -> NSSliderType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sliderType)
    }
    unsafe fn setSliderType_(&self, sliderType: NSSliderType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSliderType : sliderType)
    }
    unsafe fn isVertical(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVertical)
    }
    unsafe fn setVertical_(&self, vertical: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVertical : vertical)
    }
    unsafe fn trackRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trackRect)
    }
    unsafe fn knobThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, knobThickness)
    }
    unsafe fn prefersTrackingUntilMouseUp() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSliderCell").unwrap(), prefersTrackingUntilMouseUp)
    }
}
impl NSSliderCell_NSSliderCellVerticalGetter for NSSliderCell {}
impl NSSliderCell_NSTickMarkSupport for NSSliderCell {}
impl NSSliderCell_NSDeprecated for NSSliderCell {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSlider(pub id);
impl std::ops::Deref for NSSlider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSlider {}
impl NSSlider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSlider").unwrap(), alloc) })
    }
}
impl PNSAccessibilitySlider for NSSlider {}
impl INSControl for NSSlider {}
impl std::convert::TryFrom<NSControl> for NSSlider {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSSlider, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSlider").unwrap()) };
        if is_kind_of {
            Ok(NSSlider(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSSlider")
        }
    }
}
impl INSView for NSSlider {}
impl PNSAnimatablePropertyContainer for NSSlider {}
impl PNSUserInterfaceItemIdentification for NSSlider {}
impl PNSDraggingDestination for NSSlider {}
impl PNSAppearanceCustomization for NSSlider {}
impl PNSAccessibilityElement for NSSlider {}
impl PNSAccessibility for NSSlider {}
impl INSResponder for NSSlider {}
impl PNSCoding for NSSlider {}
impl INSObject for NSSlider {}
impl PNSObject for NSSlider {}
impl INSSlider for NSSlider {}
pub trait INSSlider: Sized + std::ops::Deref {
    unsafe fn acceptsFirstMouse_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, acceptsFirstMouse : event)
    }
    unsafe fn sliderType(&self) -> NSSliderType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sliderType)
    }
    unsafe fn setSliderType_(&self, sliderType: NSSliderType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSliderType : sliderType)
    }
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn neutralValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, neutralValue)
    }
    unsafe fn setNeutralValue_(&self, neutralValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeutralValue : neutralValue)
    }
    unsafe fn altIncrementValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, altIncrementValue)
    }
    unsafe fn setAltIncrementValue_(&self, altIncrementValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAltIncrementValue : altIncrementValue)
    }
    unsafe fn knobThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, knobThickness)
    }
    unsafe fn isVertical(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVertical)
    }
    unsafe fn setVertical_(&self, vertical: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVertical : vertical)
    }
    unsafe fn trackFillColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trackFillColor)
    }
    unsafe fn setTrackFillColor_(&self, trackFillColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTrackFillColor : trackFillColor)
    }
    unsafe fn tintProminence(&self) -> NSTintProminence
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tintProminence)
    }
    unsafe fn setTintProminence_(&self, tintProminence: NSTintProminence)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTintProminence : tintProminence)
    }
}
impl NSSlider_NSSliderVerticalGetter for NSSlider {}
impl NSSlider_NSTickMarkSupport for NSSlider {}
impl NSSlider_NSSliderConvenience for NSSlider {}
impl NSSlider_NSSliderDeprecated for NSSlider {}
pub type NSStackViewGravity = NSInteger;
pub type NSStackViewDistribution = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStackView(pub id);
impl std::ops::Deref for NSStackView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStackView {}
impl NSStackView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStackView").unwrap(), alloc) })
    }
}
impl INSView for NSStackView {}
impl PNSAnimatablePropertyContainer for NSStackView {}
impl PNSUserInterfaceItemIdentification for NSStackView {}
impl PNSDraggingDestination for NSStackView {}
impl PNSAppearanceCustomization for NSStackView {}
impl PNSAccessibilityElement for NSStackView {}
impl PNSAccessibility for NSStackView {}
impl std::convert::TryFrom<NSView> for NSStackView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSStackView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStackView").unwrap()) };
        if is_kind_of {
            Ok(NSStackView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSStackView")
        }
    }
}
impl INSResponder for NSStackView {}
impl PNSCoding for NSStackView {}
impl INSObject for NSStackView {}
impl PNSObject for NSStackView {}
impl INSStackView for NSStackView {}
pub trait INSStackView: Sized + std::ops::Deref {
    unsafe fn setCustomSpacing_afterView_(&self, spacing: CGFloat, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomSpacing : spacing, afterView : view)
    }
    unsafe fn customSpacingAfterView_(&self, view: NSView) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, customSpacingAfterView : view)
    }
    unsafe fn addArrangedSubview_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addArrangedSubview : view)
    }
    unsafe fn insertArrangedSubview_atIndex_(&self, view: NSView, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertArrangedSubview : view, atIndex : index)
    }
    unsafe fn removeArrangedSubview_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeArrangedSubview : view)
    }
    unsafe fn setVisibilityPriority_forView_(
        &self,
        priority: NSStackViewVisibilityPriority,
        view: NSView,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisibilityPriority : priority, forView : view)
    }
    unsafe fn visibilityPriorityForView_(&self, view: NSView) -> NSStackViewVisibilityPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, visibilityPriorityForView : view)
    }
    unsafe fn clippingResistancePriorityForOrientation_(
        &self,
        orientation: NSLayoutConstraintOrientation,
    ) -> NSLayoutPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, clippingResistancePriorityForOrientation : orientation)
    }
    unsafe fn setClippingResistancePriority_forOrientation_(
        &self,
        clippingResistancePriority: NSLayoutPriority,
        orientation: NSLayoutConstraintOrientation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setClippingResistancePriority : clippingResistancePriority, forOrientation : orientation)
    }
    unsafe fn huggingPriorityForOrientation_(
        &self,
        orientation: NSLayoutConstraintOrientation,
    ) -> NSLayoutPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, huggingPriorityForOrientation : orientation)
    }
    unsafe fn setHuggingPriority_forOrientation_(
        &self,
        huggingPriority: NSLayoutPriority,
        orientation: NSLayoutConstraintOrientation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHuggingPriority : huggingPriority, forOrientation : orientation)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn orientation(&self) -> NSUserInterfaceLayoutOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, orientation)
    }
    unsafe fn setOrientation_(&self, orientation: NSUserInterfaceLayoutOrientation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOrientation : orientation)
    }
    unsafe fn alignment(&self) -> NSLayoutAttribute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alignment)
    }
    unsafe fn setAlignment_(&self, alignment: NSLayoutAttribute)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignment : alignment)
    }
    unsafe fn edgeInsets(&self) -> NSEdgeInsets
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, edgeInsets)
    }
    unsafe fn setEdgeInsets_(&self, edgeInsets: NSEdgeInsets)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEdgeInsets : edgeInsets)
    }
    unsafe fn distribution(&self) -> NSStackViewDistribution
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, distribution)
    }
    unsafe fn setDistribution_(&self, distribution: NSStackViewDistribution)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDistribution : distribution)
    }
    unsafe fn spacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spacing)
    }
    unsafe fn setSpacing_(&self, spacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpacing : spacing)
    }
    unsafe fn detachesHiddenViews(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, detachesHiddenViews)
    }
    unsafe fn setDetachesHiddenViews_(&self, detachesHiddenViews: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDetachesHiddenViews : detachesHiddenViews)
    }
    unsafe fn arrangedSubviews(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrangedSubviews)
    }
    unsafe fn detachedViews(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, detachedViews)
    }
    unsafe fn stackViewWithViews_(views: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStackView").unwrap(), stackViewWithViews : views)
    }
}
pub trait PNSStackViewDelegate: Sized + std::ops::Deref {
    unsafe fn stackView_willDetachViews_(&self, stackView: NSStackView, views: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stackView : stackView, willDetachViews : views)
    }
    unsafe fn stackView_didReattachViews_(&self, stackView: NSStackView, views: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stackView : stackView, didReattachViews : views)
    }
}
impl NSStackView_NSStackViewGravityAreas for NSStackView {}
impl NSStackView_NSStackViewDeprecated for NSStackView {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSwitch(pub id);
impl std::ops::Deref for NSSwitch {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSwitch {}
impl NSSwitch {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSwitch").unwrap(), alloc) })
    }
}
impl PNSAccessibilitySwitch for NSSwitch {}
impl INSControl for NSSwitch {}
impl std::convert::TryFrom<NSControl> for NSSwitch {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSSwitch, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSwitch").unwrap()) };
        if is_kind_of {
            Ok(NSSwitch(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSSwitch")
        }
    }
}
impl INSView for NSSwitch {}
impl PNSAnimatablePropertyContainer for NSSwitch {}
impl PNSUserInterfaceItemIdentification for NSSwitch {}
impl PNSDraggingDestination for NSSwitch {}
impl PNSAppearanceCustomization for NSSwitch {}
impl PNSAccessibilityElement for NSSwitch {}
impl PNSAccessibility for NSSwitch {}
impl INSResponder for NSSwitch {}
impl PNSCoding for NSSwitch {}
impl INSObject for NSSwitch {}
impl PNSObject for NSSwitch {}
impl INSSwitch for NSSwitch {}
pub trait INSSwitch: Sized + std::ops::Deref {
    unsafe fn state(&self) -> NSControlStateValue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn setState_(&self, state: NSControlStateValue)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setState : state)
    }
}
pub type NSGridCellPlacement = NSInteger;
pub type NSGridRowAlignment = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGridView(pub id);
impl std::ops::Deref for NSGridView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGridView {}
impl NSGridView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridView").unwrap(), alloc) })
    }
}
impl INSView for NSGridView {}
impl PNSAnimatablePropertyContainer for NSGridView {}
impl PNSUserInterfaceItemIdentification for NSGridView {}
impl PNSDraggingDestination for NSGridView {}
impl PNSAppearanceCustomization for NSGridView {}
impl PNSAccessibilityElement for NSGridView {}
impl PNSAccessibility for NSGridView {}
impl std::convert::TryFrom<NSView> for NSGridView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSGridView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGridView").unwrap()) };
        if is_kind_of {
            Ok(NSGridView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSGridView")
        }
    }
}
impl INSResponder for NSGridView {}
impl PNSCoding for NSGridView {}
impl INSObject for NSGridView {}
impl PNSObject for NSGridView {}
impl INSGridView for NSGridView {}
pub trait INSGridView: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn rowAtIndex_(&self, index: NSInteger) -> NSGridRow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowAtIndex : index)
    }
    unsafe fn indexOfRow_(&self, row: NSGridRow) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfRow : row)
    }
    unsafe fn columnAtIndex_(&self, index: NSInteger) -> NSGridColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnAtIndex : index)
    }
    unsafe fn indexOfColumn_(&self, column: NSGridColumn) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfColumn : column)
    }
    unsafe fn cellAtColumnIndex_rowIndex_(
        &self,
        columnIndex: NSInteger,
        rowIndex: NSInteger,
    ) -> NSGridCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellAtColumnIndex : columnIndex, rowIndex : rowIndex)
    }
    unsafe fn cellForView_(&self, view: NSView) -> NSGridCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellForView : view)
    }
    unsafe fn addRowWithViews_(&self, views: NSArray) -> NSGridRow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addRowWithViews : views)
    }
    unsafe fn insertRowAtIndex_withViews_(&self, index: NSInteger, views: NSArray) -> NSGridRow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertRowAtIndex : index, withViews : views)
    }
    unsafe fn moveRowAtIndex_toIndex_(&self, fromIndex: NSInteger, toIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveRowAtIndex : fromIndex, toIndex : toIndex)
    }
    unsafe fn removeRowAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRowAtIndex : index)
    }
    unsafe fn addColumnWithViews_(&self, views: NSArray) -> NSGridColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addColumnWithViews : views)
    }
    unsafe fn insertColumnAtIndex_withViews_(
        &self,
        index: NSInteger,
        views: NSArray,
    ) -> NSGridColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertColumnAtIndex : index, withViews : views)
    }
    unsafe fn moveColumnAtIndex_toIndex_(&self, fromIndex: NSInteger, toIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveColumnAtIndex : fromIndex, toIndex : toIndex)
    }
    unsafe fn removeColumnAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeColumnAtIndex : index)
    }
    unsafe fn mergeCellsInHorizontalRange_verticalRange_(&self, hRange: NSRange, vRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mergeCellsInHorizontalRange : hRange, verticalRange : vRange)
    }
    unsafe fn numberOfRows(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfRows)
    }
    unsafe fn numberOfColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColumns)
    }
    unsafe fn xPlacement(&self) -> NSGridCellPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, xPlacement)
    }
    unsafe fn setXPlacement_(&self, xPlacement: NSGridCellPlacement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setXPlacement : xPlacement)
    }
    unsafe fn yPlacement(&self) -> NSGridCellPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, yPlacement)
    }
    unsafe fn setYPlacement_(&self, yPlacement: NSGridCellPlacement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setYPlacement : yPlacement)
    }
    unsafe fn rowAlignment(&self) -> NSGridRowAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowAlignment)
    }
    unsafe fn setRowAlignment_(&self, rowAlignment: NSGridRowAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowAlignment : rowAlignment)
    }
    unsafe fn rowSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowSpacing)
    }
    unsafe fn setRowSpacing_(&self, rowSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowSpacing : rowSpacing)
    }
    unsafe fn columnSpacing(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, columnSpacing)
    }
    unsafe fn setColumnSpacing_(&self, columnSpacing: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColumnSpacing : columnSpacing)
    }
    unsafe fn gridViewWithNumberOfColumns_rows_(
        columnCount: NSInteger,
        rowCount: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridView").unwrap(), gridViewWithNumberOfColumns : columnCount, rows : rowCount)
    }
    unsafe fn gridViewWithViews_(rows: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridView").unwrap(), gridViewWithViews : rows)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGridRow(pub id);
impl std::ops::Deref for NSGridRow {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGridRow {}
impl NSGridRow {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridRow").unwrap(), alloc) })
    }
}
impl PNSCoding for NSGridRow {}
impl INSObject for NSGridRow {}
impl PNSObject for NSGridRow {}
impl std::convert::TryFrom<NSObject> for NSGridRow {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGridRow, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGridRow").unwrap()) };
        if is_kind_of {
            Ok(NSGridRow(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGridRow")
        }
    }
}
impl INSGridRow for NSGridRow {}
pub trait INSGridRow: Sized + std::ops::Deref {
    unsafe fn cellAtIndex_(&self, index: NSInteger) -> NSGridCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellAtIndex : index)
    }
    unsafe fn mergeCellsInRange_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mergeCellsInRange : range)
    }
    unsafe fn gridView(&self) -> NSGridView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, gridView)
    }
    unsafe fn numberOfCells(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfCells)
    }
    unsafe fn yPlacement(&self) -> NSGridCellPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, yPlacement)
    }
    unsafe fn setYPlacement_(&self, yPlacement: NSGridCellPlacement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setYPlacement : yPlacement)
    }
    unsafe fn rowAlignment(&self) -> NSGridRowAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowAlignment)
    }
    unsafe fn setRowAlignment_(&self, rowAlignment: NSGridRowAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowAlignment : rowAlignment)
    }
    unsafe fn height(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, height)
    }
    unsafe fn setHeight_(&self, height: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeight : height)
    }
    unsafe fn topPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, topPadding)
    }
    unsafe fn setTopPadding_(&self, topPadding: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTopPadding : topPadding)
    }
    unsafe fn bottomPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bottomPadding)
    }
    unsafe fn setBottomPadding_(&self, bottomPadding: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBottomPadding : bottomPadding)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGridColumn(pub id);
impl std::ops::Deref for NSGridColumn {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGridColumn {}
impl NSGridColumn {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridColumn").unwrap(), alloc) })
    }
}
impl PNSCoding for NSGridColumn {}
impl INSObject for NSGridColumn {}
impl PNSObject for NSGridColumn {}
impl std::convert::TryFrom<NSObject> for NSGridColumn {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGridColumn, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGridColumn").unwrap()) };
        if is_kind_of {
            Ok(NSGridColumn(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGridColumn")
        }
    }
}
impl INSGridColumn for NSGridColumn {}
pub trait INSGridColumn: Sized + std::ops::Deref {
    unsafe fn cellAtIndex_(&self, index: NSInteger) -> NSGridCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellAtIndex : index)
    }
    unsafe fn mergeCellsInRange_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mergeCellsInRange : range)
    }
    unsafe fn gridView(&self) -> NSGridView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, gridView)
    }
    unsafe fn numberOfCells(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfCells)
    }
    unsafe fn xPlacement(&self) -> NSGridCellPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, xPlacement)
    }
    unsafe fn setXPlacement_(&self, xPlacement: NSGridCellPlacement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setXPlacement : xPlacement)
    }
    unsafe fn width(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, width)
    }
    unsafe fn setWidth_(&self, width: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : width)
    }
    unsafe fn leadingPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leadingPadding)
    }
    unsafe fn setLeadingPadding_(&self, leadingPadding: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLeadingPadding : leadingPadding)
    }
    unsafe fn trailingPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trailingPadding)
    }
    unsafe fn setTrailingPadding_(&self, trailingPadding: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTrailingPadding : trailingPadding)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGridCell(pub id);
impl std::ops::Deref for NSGridCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGridCell {}
impl NSGridCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridCell").unwrap(), alloc) })
    }
}
impl PNSCoding for NSGridCell {}
impl INSObject for NSGridCell {}
impl PNSObject for NSGridCell {}
impl std::convert::TryFrom<NSObject> for NSGridCell {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGridCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGridCell").unwrap()) };
        if is_kind_of {
            Ok(NSGridCell(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGridCell")
        }
    }
}
impl INSGridCell for NSGridCell {}
pub trait INSGridCell: Sized + std::ops::Deref {
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn row(&self) -> NSGridRow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, row)
    }
    unsafe fn column(&self) -> NSGridColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, column)
    }
    unsafe fn xPlacement(&self) -> NSGridCellPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, xPlacement)
    }
    unsafe fn setXPlacement_(&self, xPlacement: NSGridCellPlacement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setXPlacement : xPlacement)
    }
    unsafe fn yPlacement(&self) -> NSGridCellPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, yPlacement)
    }
    unsafe fn setYPlacement_(&self, yPlacement: NSGridCellPlacement)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setYPlacement : yPlacement)
    }
    unsafe fn rowAlignment(&self) -> NSGridRowAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowAlignment)
    }
    unsafe fn setRowAlignment_(&self, rowAlignment: NSGridRowAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowAlignment : rowAlignment)
    }
    unsafe fn customPlacementConstraints(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customPlacementConstraints)
    }
    unsafe fn setCustomPlacementConstraints_(&self, customPlacementConstraints: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomPlacementConstraints : customPlacementConstraints)
    }
    unsafe fn emptyContentView() -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGridCell").unwrap(), emptyContentView)
    }
}
pub type NSTextCursorAccessoryPlacement = NSInteger;
pub trait PNSTextInputClient: Sized + std::ops::Deref {
    unsafe fn insertText_replacementRange_(&self, string: id, replacementRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertText : string, replacementRange : replacementRange)
    }
    unsafe fn doCommandBySelector_(&self, selector: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, doCommandBySelector : selector)
    }
    unsafe fn setMarkedText_selectedRange_replacementRange_(
        &self,
        string: id,
        selectedRange: NSRange,
        replacementRange: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMarkedText : string, selectedRange : selectedRange, replacementRange : replacementRange)
    }
    unsafe fn unmarkText(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unmarkText)
    }
    unsafe fn selectedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRange)
    }
    unsafe fn markedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, markedRange)
    }
    unsafe fn hasMarkedText(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasMarkedText)
    }
    unsafe fn attributedSubstringForProposedRange_actualRange_(
        &self,
        range: NSRange,
        actualRange: NSRangePointer,
    ) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attributedSubstringForProposedRange : range, actualRange : actualRange)
    }
    unsafe fn validAttributesForMarkedText(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validAttributesForMarkedText)
    }
    unsafe fn firstRectForCharacterRange_actualRange_(
        &self,
        range: NSRange,
        actualRange: NSRangePointer,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, firstRectForCharacterRange : range, actualRange : actualRange)
    }
    unsafe fn characterIndexForPoint_(&self, point: NSPoint) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, characterIndexForPoint : point)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn fractionOfDistanceThroughGlyphForPoint_(&self, point: NSPoint) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fractionOfDistanceThroughGlyphForPoint : point)
    }
    unsafe fn baselineDeltaForCharacterAtIndex_(&self, anIndex: NSUInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, baselineDeltaForCharacterAtIndex : anIndex)
    }
    unsafe fn windowLevel(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowLevel)
    }
    unsafe fn drawsVerticallyForCharacterAtIndex_(&self, charIndex: NSUInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawsVerticallyForCharacterAtIndex : charIndex)
    }
    unsafe fn preferredTextAccessoryPlacement(&self) -> NSTextCursorAccessoryPlacement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredTextAccessoryPlacement)
    }
    unsafe fn insertAdaptiveImageGlyph_replacementRange_(
        &self,
        adaptiveImageGlyph: NSAdaptiveImageGlyph,
        replacementRange: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertAdaptiveImageGlyph : adaptiveImageGlyph, replacementRange : replacementRange)
    }
    unsafe fn unionRectInVisibleSelectedRange(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unionRectInVisibleSelectedRange)
    }
    unsafe fn documentVisibleRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentVisibleRect)
    }
    unsafe fn supportsAdaptiveImageGlyph(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, supportsAdaptiveImageGlyph)
    }
}
pub type NSTextInputTraitType = NSInteger;
pub type NSWritingToolsBehavior = NSInteger;
pub type NSWritingToolsResultOptions = NSUInteger;
pub trait PNSTextInputTraits: Sized + std::ops::Deref {
    unsafe fn autocorrectionType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autocorrectionType)
    }
    unsafe fn setAutocorrectionType_(&self, autocorrectionType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutocorrectionType : autocorrectionType)
    }
    unsafe fn spellCheckingType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spellCheckingType)
    }
    unsafe fn setSpellCheckingType_(&self, spellCheckingType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpellCheckingType : spellCheckingType)
    }
    unsafe fn grammarCheckingType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, grammarCheckingType)
    }
    unsafe fn setGrammarCheckingType_(&self, grammarCheckingType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGrammarCheckingType : grammarCheckingType)
    }
    unsafe fn smartQuotesType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, smartQuotesType)
    }
    unsafe fn setSmartQuotesType_(&self, smartQuotesType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSmartQuotesType : smartQuotesType)
    }
    unsafe fn smartDashesType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, smartDashesType)
    }
    unsafe fn setSmartDashesType_(&self, smartDashesType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSmartDashesType : smartDashesType)
    }
    unsafe fn smartInsertDeleteType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, smartInsertDeleteType)
    }
    unsafe fn setSmartInsertDeleteType_(&self, smartInsertDeleteType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSmartInsertDeleteType : smartInsertDeleteType)
    }
    unsafe fn textReplacementType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textReplacementType)
    }
    unsafe fn setTextReplacementType_(&self, textReplacementType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextReplacementType : textReplacementType)
    }
    unsafe fn dataDetectionType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataDetectionType)
    }
    unsafe fn setDataDetectionType_(&self, dataDetectionType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataDetectionType : dataDetectionType)
    }
    unsafe fn linkDetectionType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, linkDetectionType)
    }
    unsafe fn setLinkDetectionType_(&self, linkDetectionType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLinkDetectionType : linkDetectionType)
    }
    unsafe fn textCompletionType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textCompletionType)
    }
    unsafe fn setTextCompletionType_(&self, textCompletionType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextCompletionType : textCompletionType)
    }
    unsafe fn inlinePredictionType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, inlinePredictionType)
    }
    unsafe fn setInlinePredictionType_(&self, inlinePredictionType: NSTextInputTraitType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInlinePredictionType : inlinePredictionType)
    }
    unsafe fn mathExpressionCompletionType(&self) -> NSTextInputTraitType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mathExpressionCompletionType)
    }
    unsafe fn setMathExpressionCompletionType_(
        &self,
        mathExpressionCompletionType: NSTextInputTraitType,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMathExpressionCompletionType : mathExpressionCompletionType)
    }
    unsafe fn writingToolsBehavior(&self) -> NSWritingToolsBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, writingToolsBehavior)
    }
    unsafe fn setWritingToolsBehavior_(&self, writingToolsBehavior: NSWritingToolsBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWritingToolsBehavior : writingToolsBehavior)
    }
    unsafe fn allowedWritingToolsResultOptions(&self) -> NSWritingToolsResultOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedWritingToolsResultOptions)
    }
    unsafe fn setAllowedWritingToolsResultOptions_(
        &self,
        allowedWritingToolsResultOptions: NSWritingToolsResultOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedWritingToolsResultOptions : allowedWritingToolsResultOptions)
    }
}
pub trait PNSTextCheckingClient: Sized + std::ops::Deref {
    unsafe fn annotatedSubstringForProposedRange_actualRange_(
        &self,
        range: NSRange,
        actualRange: NSRangePointer,
    ) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, annotatedSubstringForProposedRange : range, actualRange : actualRange)
    }
    unsafe fn setAnnotations_range_(&self, annotations: NSDictionary, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnnotations : annotations, range : range)
    }
    unsafe fn addAnnotations_range_(&self, annotations: NSDictionary, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addAnnotations : annotations, range : range)
    }
    unsafe fn removeAnnotation_range_(&self, annotationName: NSString, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeAnnotation : annotationName, range : range)
    }
    unsafe fn replaceCharactersInRange_withAnnotatedString_(
        &self,
        range: NSRange,
        annotatedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceCharactersInRange : range, withAnnotatedString : annotatedString)
    }
    unsafe fn selectAndShowRange_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAndShowRange : range)
    }
    unsafe fn viewForRange_firstRect_actualRange_(
        &self,
        range: NSRange,
        firstRect: NSRectPointer,
        actualRange: NSRangePointer,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewForRange : range, firstRect : firstRect, actualRange : actualRange)
    }
    unsafe fn candidateListTouchBarItem(&self) -> NSCandidateListTouchBarItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, candidateListTouchBarItem)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextCheckingController(pub id);
impl std::ops::Deref for NSTextCheckingController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextCheckingController {}
impl NSTextCheckingController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextCheckingController").unwrap(), alloc) })
    }
}
impl INSObject for NSTextCheckingController {}
impl PNSObject for NSTextCheckingController {}
impl std::convert::TryFrom<NSObject> for NSTextCheckingController {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextCheckingController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextCheckingController").unwrap()) };
        if is_kind_of {
            Ok(NSTextCheckingController(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextCheckingController")
        }
    }
}
impl INSTextCheckingController for NSTextCheckingController {}
pub trait INSTextCheckingController: Sized + std::ops::Deref {
    unsafe fn initWithClient_(&self, client: *mut u64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithClient : client)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn invalidate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidate)
    }
    unsafe fn didChangeTextInRange_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didChangeTextInRange : range)
    }
    unsafe fn insertedTextInRange_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertedTextInRange : range)
    }
    unsafe fn didChangeSelectedRange(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, didChangeSelectedRange)
    }
    unsafe fn considerTextCheckingForRange_(&self, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, considerTextCheckingForRange : range)
    }
    unsafe fn checkTextInRange_types_options_(
        &self,
        range: NSRange,
        checkingTypes: NSTextCheckingTypes,
        options: NSDictionary,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkTextInRange : range, types : checkingTypes, options : options)
    }
    unsafe fn checkTextInSelection_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkTextInSelection : sender)
    }
    unsafe fn checkTextInDocument_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkTextInDocument : sender)
    }
    unsafe fn orderFrontSubstitutionsPanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFrontSubstitutionsPanel : sender)
    }
    unsafe fn checkSpelling_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, checkSpelling : sender)
    }
    unsafe fn showGuessPanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showGuessPanel : sender)
    }
    unsafe fn changeSpelling_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeSpelling : sender)
    }
    unsafe fn ignoreSpelling_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ignoreSpelling : sender)
    }
    unsafe fn updateCandidates(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateCandidates)
    }
    unsafe fn validAnnotations(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validAnnotations)
    }
    unsafe fn menuAtIndex_clickedOnSelection_effectiveRange_(
        &self,
        location: NSUInteger,
        clickedOnSelection: BOOL,
        effectiveRange: NSRangePointer,
    ) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, menuAtIndex : location, clickedOnSelection : clickedOnSelection, effectiveRange : effectiveRange)
    }
    unsafe fn client(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, client)
    }
    unsafe fn spellCheckerDocumentTag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, spellCheckerDocumentTag)
    }
    unsafe fn setSpellCheckerDocumentTag_(&self, spellCheckerDocumentTag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSpellCheckerDocumentTag : spellCheckerDocumentTag)
    }
}
pub type NSTextFieldBezelStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextFieldCell(pub id);
impl std::ops::Deref for NSTextFieldCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextFieldCell {}
impl NSTextFieldCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextFieldCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSTextFieldCell {}
impl std::convert::TryFrom<NSActionCell> for NSTextFieldCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSTextFieldCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextFieldCell").unwrap()) };
        if is_kind_of {
            Ok(NSTextFieldCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSTextFieldCell")
        }
    }
}
impl INSCell for NSTextFieldCell {}
impl PNSCopying for NSTextFieldCell {}
impl PNSCoding for NSTextFieldCell {}
impl PNSUserInterfaceItemIdentification for NSTextFieldCell {}
impl PNSAccessibilityElement for NSTextFieldCell {}
impl PNSAccessibility for NSTextFieldCell {}
impl INSObject for NSTextFieldCell {}
impl PNSObject for NSTextFieldCell {}
impl INSTextFieldCell for NSTextFieldCell {}
pub trait INSTextFieldCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn setUpFieldEditorAttributes_(&self, textObj: NSText) -> NSText
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUpFieldEditorAttributes : textObj)
    }
    unsafe fn setWantsNotificationForMarkedText_(&self, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWantsNotificationForMarkedText : flag)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn textColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textColor)
    }
    unsafe fn setTextColor_(&self, textColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextColor : textColor)
    }
    unsafe fn bezelStyle(&self) -> NSTextFieldBezelStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezelStyle)
    }
    unsafe fn setBezelStyle_(&self, bezelStyle: NSTextFieldBezelStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezelStyle : bezelStyle)
    }
    unsafe fn placeholderString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderString)
    }
    unsafe fn setPlaceholderString_(&self, placeholderString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderString : placeholderString)
    }
    unsafe fn placeholderAttributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderAttributedString)
    }
    unsafe fn setPlaceholderAttributedString_(
        &self,
        placeholderAttributedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderAttributedString : placeholderAttributedString)
    }
    unsafe fn allowedInputSourceLocales(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedInputSourceLocales)
    }
    unsafe fn setAllowedInputSourceLocales_(&self, allowedInputSourceLocales: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedInputSourceLocales : allowedInputSourceLocales)
    }
}
pub trait PNSTextContent: Sized + std::ops::Deref {
    unsafe fn contentType(&self) -> NSTextContentType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentType)
    }
    unsafe fn setContentType_(&self, contentType: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentType : contentType)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextField(pub id);
impl std::ops::Deref for NSTextField {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextField {}
impl NSTextField {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextField").unwrap(), alloc) })
    }
}
impl PNSUserInterfaceValidations for NSTextField {}
impl PNSAccessibilityNavigableStaticText for NSTextField {}
impl PNSTextContent for NSTextField {}
impl INSControl for NSTextField {}
impl std::convert::TryFrom<NSControl> for NSTextField {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSTextField, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextField").unwrap()) };
        if is_kind_of {
            Ok(NSTextField(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSTextField")
        }
    }
}
impl INSView for NSTextField {}
impl PNSAnimatablePropertyContainer for NSTextField {}
impl PNSUserInterfaceItemIdentification for NSTextField {}
impl PNSDraggingDestination for NSTextField {}
impl PNSAppearanceCustomization for NSTextField {}
impl PNSAccessibilityElement for NSTextField {}
impl PNSAccessibility for NSTextField {}
impl INSResponder for NSTextField {}
impl PNSCoding for NSTextField {}
impl INSObject for NSTextField {}
impl PNSObject for NSTextField {}
impl INSTextField for NSTextField {}
pub trait INSTextField: Sized + std::ops::Deref {
    unsafe fn selectText_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectText : sender)
    }
    unsafe fn textShouldBeginEditing_(&self, textObject: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textShouldBeginEditing : textObject)
    }
    unsafe fn textShouldEndEditing_(&self, textObject: NSText) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textShouldEndEditing : textObject)
    }
    unsafe fn textDidBeginEditing_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidBeginEditing : notification)
    }
    unsafe fn textDidEndEditing_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidEndEditing : notification)
    }
    unsafe fn textDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textDidChange : notification)
    }
    unsafe fn placeholderString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderString)
    }
    unsafe fn setPlaceholderString_(&self, placeholderString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderString : placeholderString)
    }
    unsafe fn placeholderAttributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderAttributedString)
    }
    unsafe fn setPlaceholderAttributedString_(
        &self,
        placeholderAttributedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderAttributedString : placeholderAttributedString)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn textColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textColor)
    }
    unsafe fn setTextColor_(&self, textColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextColor : textColor)
    }
    unsafe fn isBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBordered)
    }
    unsafe fn setBordered_(&self, bordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : bordered)
    }
    unsafe fn isBezeled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBezeled)
    }
    unsafe fn setBezeled_(&self, bezeled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezeled : bezeled)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn isSelectable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelectable)
    }
    unsafe fn setSelectable_(&self, selectable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectable : selectable)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn acceptsFirstResponder(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, acceptsFirstResponder)
    }
    unsafe fn bezelStyle(&self) -> NSTextFieldBezelStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezelStyle)
    }
    unsafe fn setBezelStyle_(&self, bezelStyle: NSTextFieldBezelStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezelStyle : bezelStyle)
    }
    unsafe fn preferredMaxLayoutWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredMaxLayoutWidth)
    }
    unsafe fn setPreferredMaxLayoutWidth_(&self, preferredMaxLayoutWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredMaxLayoutWidth : preferredMaxLayoutWidth)
    }
    unsafe fn maximumNumberOfLines(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumNumberOfLines)
    }
    unsafe fn setMaximumNumberOfLines_(&self, maximumNumberOfLines: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumNumberOfLines : maximumNumberOfLines)
    }
    unsafe fn allowsDefaultTighteningForTruncation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsDefaultTighteningForTruncation)
    }
    unsafe fn setAllowsDefaultTighteningForTruncation_(
        &self,
        allowsDefaultTighteningForTruncation: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsDefaultTighteningForTruncation : allowsDefaultTighteningForTruncation)
    }
    unsafe fn lineBreakStrategy(&self) -> NSLineBreakStrategy
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakStrategy)
    }
    unsafe fn setLineBreakStrategy_(&self, lineBreakStrategy: NSLineBreakStrategy)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineBreakStrategy : lineBreakStrategy)
    }
    unsafe fn allowsWritingTools(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsWritingTools)
    }
    unsafe fn setAllowsWritingTools_(&self, allowsWritingTools: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsWritingTools : allowsWritingTools)
    }
    unsafe fn allowsWritingToolsAffordance(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsWritingToolsAffordance)
    }
    unsafe fn setAllowsWritingToolsAffordance_(&self, allowsWritingToolsAffordance: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsWritingToolsAffordance : allowsWritingToolsAffordance)
    }
    unsafe fn placeholderStrings(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderStrings)
    }
    unsafe fn setPlaceholderStrings_(&self, placeholderStrings: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderStrings : placeholderStrings)
    }
    unsafe fn placeholderAttributedStrings(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderAttributedStrings)
    }
    unsafe fn setPlaceholderAttributedStrings_(&self, placeholderAttributedStrings: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderAttributedStrings : placeholderAttributedStrings)
    }
    unsafe fn resolvesNaturalAlignmentWithBaseWritingDirection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resolvesNaturalAlignmentWithBaseWritingDirection)
    }
    unsafe fn setResolvesNaturalAlignmentWithBaseWritingDirection_(
        &self,
        resolvesNaturalAlignmentWithBaseWritingDirection: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResolvesNaturalAlignmentWithBaseWritingDirection : resolvesNaturalAlignmentWithBaseWritingDirection)
    }
}
impl NSTextField_NSTouchBar for NSTextField {}
impl NSTextField_NSTextFieldConvenience for NSTextField {}
impl NSTextField_NSTextFieldAttributedStringMethods for NSTextField {}
pub trait PNSTextFieldDelegate: Sized + std::ops::Deref {
    unsafe fn textField_textView_candidatesForSelectedRange_(
        &self,
        textField: NSTextField,
        textView: NSTextView,
        selectedRange: NSRange,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textField : textField, textView : textView, candidatesForSelectedRange : selectedRange)
    }
    unsafe fn textField_textView_candidates_forSelectedRange_(
        &self,
        textField: NSTextField,
        textView: NSTextView,
        candidates: NSArray,
        selectedRange: NSRange,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textField : textField, textView : textView, candidates : candidates, forSelectedRange : selectedRange)
    }
    unsafe fn textField_textView_shouldSelectCandidateAtIndex_(
        &self,
        textField: NSTextField,
        textView: NSTextView,
        index: NSUInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textField : textField, textView : textView, shouldSelectCandidateAtIndex : index)
    }
}
impl NSTextField_NSDeprecated for NSTextField {}
pub type NSTextInsertionIndicatorDisplayMode = NSInteger;
pub type NSTextInsertionIndicatorAutomaticModeOptions = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextInsertionIndicator(pub id);
impl std::ops::Deref for NSTextInsertionIndicator {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextInsertionIndicator {}
impl NSTextInsertionIndicator {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextInsertionIndicator").unwrap(), alloc) })
    }
}
impl INSView for NSTextInsertionIndicator {}
impl PNSAnimatablePropertyContainer for NSTextInsertionIndicator {}
impl PNSUserInterfaceItemIdentification for NSTextInsertionIndicator {}
impl PNSDraggingDestination for NSTextInsertionIndicator {}
impl PNSAppearanceCustomization for NSTextInsertionIndicator {}
impl PNSAccessibilityElement for NSTextInsertionIndicator {}
impl PNSAccessibility for NSTextInsertionIndicator {}
impl std::convert::TryFrom<NSView> for NSTextInsertionIndicator {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSTextInsertionIndicator, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextInsertionIndicator").unwrap()) };
        if is_kind_of {
            Ok(NSTextInsertionIndicator(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSTextInsertionIndicator")
        }
    }
}
impl INSResponder for NSTextInsertionIndicator {}
impl PNSCoding for NSTextInsertionIndicator {}
impl INSObject for NSTextInsertionIndicator {}
impl PNSObject for NSTextInsertionIndicator {}
impl INSTextInsertionIndicator for NSTextInsertionIndicator {}
pub trait INSTextInsertionIndicator: Sized + std::ops::Deref {
    unsafe fn displayMode(&self) -> NSTextInsertionIndicatorDisplayMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayMode)
    }
    unsafe fn setDisplayMode_(&self, displayMode: NSTextInsertionIndicatorDisplayMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayMode : displayMode)
    }
    unsafe fn color(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, color)
    }
    unsafe fn setColor_(&self, color: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color)
    }
    unsafe fn automaticModeOptions(&self) -> NSTextInsertionIndicatorAutomaticModeOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticModeOptions)
    }
    unsafe fn setAutomaticModeOptions_(
        &self,
        automaticModeOptions: NSTextInsertionIndicatorAutomaticModeOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticModeOptions : automaticModeOptions)
    }
    unsafe fn effectsViewInserter(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectsViewInserter)
    }
    unsafe fn setEffectsViewInserter_(&self, effectsViewInserter: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEffectsViewInserter : effectsViewInserter)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextContainer(pub id);
impl std::ops::Deref for NSTextContainer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextContainer {}
impl NSTextContainer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextContainer").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextContainer {}
impl INSObject for NSTextContainer {}
impl PNSObject for NSTextContainer {}
impl std::convert::TryFrom<NSObject> for NSTextContainer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextContainer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextContainer").unwrap()) };
        if is_kind_of {
            Ok(NSTextContainer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextContainer")
        }
    }
}
impl INSTextContainer for NSTextContainer {}
pub trait INSTextContainer: Sized + std::ops::Deref {
    unsafe fn initWithSize_(&self, size: CGSize) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSize : size)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn lineFragmentRectForProposedRect_atIndex_writingDirection_remainingRect_(
        &self,
        proposedRect: CGRect,
        characterIndex: NSUInteger,
        baseWritingDirection: NSWritingDirection,
        remainingRect: *mut CGRect,
    ) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lineFragmentRectForProposedRect : proposedRect, atIndex : characterIndex, writingDirection : baseWritingDirection, remainingRect : remainingRect)
    }
    unsafe fn textLayoutManager(&self) -> NSTextLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLayoutManager)
    }
    unsafe fn size(&self) -> CGSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, size)
    }
    unsafe fn setSize_(&self, size: CGSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSize : size)
    }
    unsafe fn lineBreakMode(&self) -> NSLineBreakMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineBreakMode)
    }
    unsafe fn setLineBreakMode_(&self, lineBreakMode: NSLineBreakMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineBreakMode : lineBreakMode)
    }
    unsafe fn lineFragmentPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineFragmentPadding)
    }
    unsafe fn setLineFragmentPadding_(&self, lineFragmentPadding: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineFragmentPadding : lineFragmentPadding)
    }
    unsafe fn maximumNumberOfLines(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumNumberOfLines)
    }
    unsafe fn setMaximumNumberOfLines_(&self, maximumNumberOfLines: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumNumberOfLines : maximumNumberOfLines)
    }
    unsafe fn isSimpleRectangularTextContainer(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSimpleRectangularTextContainer)
    }
    unsafe fn widthTracksTextView(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, widthTracksTextView)
    }
    unsafe fn setWidthTracksTextView_(&self, widthTracksTextView: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidthTracksTextView : widthTracksTextView)
    }
    unsafe fn heightTracksTextView(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, heightTracksTextView)
    }
    unsafe fn setHeightTracksTextView_(&self, heightTracksTextView: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeightTracksTextView : heightTracksTextView)
    }
}
pub type NSUnderlineStyle = NSInteger;
pub type NSWritingDirectionFormatType = NSInteger;
pub type NSTextScalingType = NSInteger;
pub type NSSpellingState = NSInteger;
pub type NSTextStorageEditActions = NSUInteger;
pub trait PNSTextStorageDelegate: Sized + std::ops::Deref {
    unsafe fn textStorage_willProcessEditing_range_changeInLength_(
        &self,
        textStorage: NSTextStorage,
        editedMask: NSTextStorageEditActions,
        editedRange: NSRange,
        delta: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textStorage : textStorage, willProcessEditing : editedMask, range : editedRange, changeInLength : delta)
    }
    unsafe fn textStorage_didProcessEditing_range_changeInLength_(
        &self,
        textStorage: NSTextStorage,
        editedMask: NSTextStorageEditActions,
        editedRange: NSRange,
        delta: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textStorage : textStorage, didProcessEditing : editedMask, range : editedRange, changeInLength : delta)
    }
}
pub trait PNSTextStorageObserving: Sized + std::ops::Deref {
    unsafe fn processEditingForTextStorage_edited_range_changeInLength_invalidatedRange_(
        &self,
        textStorage: NSTextStorage,
        editMask: NSTextStorageEditActions,
        newCharRange: NSRange,
        delta: NSInteger,
        invalidatedCharRange: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, processEditingForTextStorage : textStorage, edited : editMask, range : newCharRange, changeInLength : delta, invalidatedRange : invalidatedCharRange)
    }
    unsafe fn performEditingTransactionForTextStorage_usingBlock_(
        &self,
        textStorage: NSTextStorage,
        transaction: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performEditingTransactionForTextStorage : textStorage, usingBlock : transaction)
    }
    unsafe fn textStorage(&self) -> NSTextStorage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textStorage)
    }
    unsafe fn setTextStorage_(&self, textStorage: NSTextStorage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextStorage : textStorage)
    }
}
pub type NSTextStorageEditedOptions = NSUInteger;
pub trait PNSGlyphStorage: Sized + std::ops::Deref {
    unsafe fn insertGlyphs_length_forStartingGlyphAtIndex_characterIndex_(
        &self,
        glyphs: *const NSGlyph,
        length: NSUInteger,
        glyphIndex: NSUInteger,
        charIndex: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertGlyphs : glyphs, length : length, forStartingGlyphAtIndex : glyphIndex, characterIndex : charIndex)
    }
    unsafe fn setIntAttribute_value_forGlyphAtIndex_(
        &self,
        attributeTag: NSInteger,
        val: NSInteger,
        glyphIndex: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntAttribute : attributeTag, value : val, forGlyphAtIndex : glyphIndex)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn layoutOptions(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutOptions)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGlyphGenerator(pub id);
impl std::ops::Deref for NSGlyphGenerator {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGlyphGenerator {}
impl NSGlyphGenerator {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGlyphGenerator").unwrap(), alloc) })
    }
}
impl INSObject for NSGlyphGenerator {}
impl PNSObject for NSGlyphGenerator {}
impl std::convert::TryFrom<NSObject> for NSGlyphGenerator {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGlyphGenerator, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGlyphGenerator").unwrap()) };
        if is_kind_of {
            Ok(NSGlyphGenerator(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGlyphGenerator")
        }
    }
}
impl INSGlyphGenerator for NSGlyphGenerator {}
pub trait INSGlyphGenerator: Sized + std::ops::Deref {
    unsafe fn generateGlyphsForGlyphStorage_desiredNumberOfCharacters_glyphIndex_characterIndex_(
        &self,
        glyphStorage: *mut u64,
        nChars: NSUInteger,
        glyphIndex: *mut NSUInteger,
        charIndex: *mut NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, generateGlyphsForGlyphStorage : glyphStorage, desiredNumberOfCharacters : nChars, glyphIndex : glyphIndex, characterIndex : charIndex)
    }
    unsafe fn sharedGlyphGenerator() -> NSGlyphGenerator
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGlyphGenerator").unwrap(), sharedGlyphGenerator)
    }
}
pub type NSTextLayoutOrientation = NSInteger;
pub type NSGlyphProperty = NSInteger;
pub type NSControlCharacterAction = NSInteger;
pub trait PNSTextLayoutOrientationProvider: Sized + std::ops::Deref {
    unsafe fn layoutOrientation(&self) -> NSTextLayoutOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutOrientation)
    }
}
pub type NSTypesetterBehavior = NSInteger;
pub trait PNSLayoutManagerDelegate: Sized + std::ops::Deref {
    unsafe fn layoutManager_shouldGenerateGlyphs_properties_characterIndexes_font_forGlyphRange_(
        &self,
        layoutManager: NSLayoutManager,
        glyphs: *const CGGlyph,
        props: *const NSGlyphProperty,
        charIndexes: *const NSUInteger,
        aFont: NSFont,
        glyphRange: NSRange,
    ) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, shouldGenerateGlyphs : glyphs, properties : props, characterIndexes : charIndexes, font : aFont, forGlyphRange : glyphRange)
    }
    unsafe fn layoutManager_lineSpacingAfterGlyphAtIndex_withProposedLineFragmentRect_(
        &self,
        layoutManager: NSLayoutManager,
        glyphIndex: NSUInteger,
        rect: NSRect,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, lineSpacingAfterGlyphAtIndex : glyphIndex, withProposedLineFragmentRect : rect)
    }
    unsafe fn layoutManager_paragraphSpacingBeforeGlyphAtIndex_withProposedLineFragmentRect_(
        &self,
        layoutManager: NSLayoutManager,
        glyphIndex: NSUInteger,
        rect: NSRect,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, paragraphSpacingBeforeGlyphAtIndex : glyphIndex, withProposedLineFragmentRect : rect)
    }
    unsafe fn layoutManager_paragraphSpacingAfterGlyphAtIndex_withProposedLineFragmentRect_(
        &self,
        layoutManager: NSLayoutManager,
        glyphIndex: NSUInteger,
        rect: NSRect,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, paragraphSpacingAfterGlyphAtIndex : glyphIndex, withProposedLineFragmentRect : rect)
    }
    unsafe fn layoutManager_shouldUseAction_forControlCharacterAtIndex_(
        &self,
        layoutManager: NSLayoutManager,
        action: NSControlCharacterAction,
        charIndex: NSUInteger,
    ) -> NSControlCharacterAction
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, shouldUseAction : action, forControlCharacterAtIndex : charIndex)
    }
    unsafe fn layoutManager_shouldBreakLineByWordBeforeCharacterAtIndex_(
        &self,
        layoutManager: NSLayoutManager,
        charIndex: NSUInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, shouldBreakLineByWordBeforeCharacterAtIndex : charIndex)
    }
    unsafe fn layoutManager_shouldBreakLineByHyphenatingBeforeCharacterAtIndex_(
        &self,
        layoutManager: NSLayoutManager,
        charIndex: NSUInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, shouldBreakLineByHyphenatingBeforeCharacterAtIndex : charIndex)
    }
    unsafe fn layoutManager_boundingBoxForControlGlyphAtIndex_forTextContainer_proposedLineFragment_glyphPosition_characterIndex_(
        &self,
        layoutManager: NSLayoutManager,
        glyphIndex: NSUInteger,
        textContainer: NSTextContainer,
        proposedRect: NSRect,
        glyphPosition: NSPoint,
        charIndex: NSUInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, boundingBoxForControlGlyphAtIndex : glyphIndex, forTextContainer : textContainer, proposedLineFragment : proposedRect, glyphPosition : glyphPosition, characterIndex : charIndex)
    }
    unsafe fn layoutManager_shouldSetLineFragmentRect_lineFragmentUsedRect_baselineOffset_inTextContainer_forGlyphRange_(
        &self,
        layoutManager: NSLayoutManager,
        lineFragmentRect: *mut NSRect,
        lineFragmentUsedRect: *mut NSRect,
        baselineOffset: *mut CGFloat,
        textContainer: NSTextContainer,
        glyphRange: NSRange,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, shouldSetLineFragmentRect : lineFragmentRect, lineFragmentUsedRect : lineFragmentUsedRect, baselineOffset : baselineOffset, inTextContainer : textContainer, forGlyphRange : glyphRange)
    }
    unsafe fn layoutManagerDidInvalidateLayout_(&self, sender: NSLayoutManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManagerDidInvalidateLayout : sender)
    }
    unsafe fn layoutManager_didCompleteLayoutForTextContainer_atEnd_(
        &self,
        layoutManager: NSLayoutManager,
        textContainer: NSTextContainer,
        layoutFinishedFlag: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, didCompleteLayoutForTextContainer : textContainer, atEnd : layoutFinishedFlag)
    }
    unsafe fn layoutManager_textContainer_didChangeGeometryFromSize_(
        &self,
        layoutManager: NSLayoutManager,
        textContainer: NSTextContainer,
        oldSize: NSSize,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, textContainer : textContainer, didChangeGeometryFromSize : oldSize)
    }
    unsafe fn layoutManager_shouldUseTemporaryAttributes_forDrawingToScreen_atCharacterIndex_effectiveRange_(
        &self,
        layoutManager: NSLayoutManager,
        attrs: NSDictionary,
        toScreen: BOOL,
        charIndex: NSUInteger,
        effectiveCharRange: NSRangePointer,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutManager : layoutManager, shouldUseTemporaryAttributes : attrs, forDrawingToScreen : toScreen, atCharacterIndex : charIndex, effectiveRange : effectiveCharRange)
    }
}
pub type NSGlyphInscription = NSUInteger;
impl NSTextContainer_ for NSTextContainer {}
pub type NSLineSweepDirection = NSUInteger;
pub type NSLineMovementDirection = NSUInteger;
impl NSTextContainer_NSTextContainerDeprecated for NSTextContainer {}
pub type NSTokenStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTokenFieldCell(pub id);
impl std::ops::Deref for NSTokenFieldCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTokenFieldCell {}
impl NSTokenFieldCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTokenFieldCell").unwrap(), alloc) })
    }
}
impl INSTextFieldCell for NSTokenFieldCell {}
impl From<NSTokenFieldCell> for NSTextFieldCell {
    fn from(child: NSTokenFieldCell) -> NSTextFieldCell {
        NSTextFieldCell(child.0)
    }
}
impl std::convert::TryFrom<NSTextFieldCell> for NSTokenFieldCell {
    type Error = &'static str;
    fn try_from(parent: NSTextFieldCell) -> Result<NSTokenFieldCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTokenFieldCell").unwrap()) };
        if is_kind_of {
            Ok(NSTokenFieldCell(parent.0))
        } else {
            Err("This NSTextFieldCell cannot be downcasted to NSTokenFieldCell")
        }
    }
}
impl INSActionCell for NSTokenFieldCell {}
impl INSCell for NSTokenFieldCell {}
impl PNSCopying for NSTokenFieldCell {}
impl PNSCoding for NSTokenFieldCell {}
impl PNSUserInterfaceItemIdentification for NSTokenFieldCell {}
impl PNSAccessibilityElement for NSTokenFieldCell {}
impl PNSAccessibility for NSTokenFieldCell {}
impl INSObject for NSTokenFieldCell {}
impl PNSObject for NSTokenFieldCell {}
impl INSTokenFieldCell for NSTokenFieldCell {}
pub trait INSTokenFieldCell: Sized + std::ops::Deref {
    unsafe fn tokenStyle(&self) -> NSTokenStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tokenStyle)
    }
    unsafe fn setTokenStyle_(&self, tokenStyle: NSTokenStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTokenStyle : tokenStyle)
    }
    unsafe fn completionDelay(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completionDelay)
    }
    unsafe fn setCompletionDelay_(&self, completionDelay: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletionDelay : completionDelay)
    }
    unsafe fn tokenizingCharacterSet(&self) -> NSCharacterSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tokenizingCharacterSet)
    }
    unsafe fn setTokenizingCharacterSet_(&self, tokenizingCharacterSet: NSCharacterSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTokenizingCharacterSet : tokenizingCharacterSet)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn defaultCompletionDelay() -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTokenFieldCell").unwrap(), defaultCompletionDelay)
    }
    unsafe fn defaultTokenizingCharacterSet() -> NSCharacterSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTokenFieldCell").unwrap(), defaultTokenizingCharacterSet)
    }
}
pub trait PNSTokenFieldCellDelegate: Sized + std::ops::Deref {
    unsafe fn tokenFieldCell_completionsForSubstring_indexOfToken_indexOfSelectedItem_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        substring: NSString,
        tokenIndex: NSInteger,
        selectedIndex: *mut NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, completionsForSubstring : substring, indexOfToken : tokenIndex, indexOfSelectedItem : selectedIndex)
    }
    unsafe fn tokenFieldCell_shouldAddObjects_atIndex_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        tokens: NSArray,
        index: NSUInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, shouldAddObjects : tokens, atIndex : index)
    }
    unsafe fn tokenFieldCell_displayStringForRepresentedObject_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        representedObject: id,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, displayStringForRepresentedObject : representedObject)
    }
    unsafe fn tokenFieldCell_editingStringForRepresentedObject_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        representedObject: id,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, editingStringForRepresentedObject : representedObject)
    }
    unsafe fn tokenFieldCell_representedObjectForEditingString_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        editingString: NSString,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, representedObjectForEditingString : editingString)
    }
    unsafe fn tokenFieldCell_writeRepresentedObjects_toPasteboard_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        objects: NSArray,
        pboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, writeRepresentedObjects : objects, toPasteboard : pboard)
    }
    unsafe fn tokenFieldCell_readFromPasteboard_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        pboard: NSPasteboard,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, readFromPasteboard : pboard)
    }
    unsafe fn tokenFieldCell_menuForRepresentedObject_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        representedObject: id,
    ) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, menuForRepresentedObject : representedObject)
    }
    unsafe fn tokenFieldCell_hasMenuForRepresentedObject_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        representedObject: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, hasMenuForRepresentedObject : representedObject)
    }
    unsafe fn tokenFieldCell_styleForRepresentedObject_(
        &self,
        tokenFieldCell: NSTokenFieldCell,
        representedObject: id,
    ) -> NSTokenStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenFieldCell : tokenFieldCell, styleForRepresentedObject : representedObject)
    }
}
pub trait PNSTokenFieldDelegate: Sized + std::ops::Deref {
    unsafe fn tokenField_completionsForSubstring_indexOfToken_indexOfSelectedItem_(
        &self,
        tokenField: NSTokenField,
        substring: NSString,
        tokenIndex: NSInteger,
        selectedIndex: *mut NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, completionsForSubstring : substring, indexOfToken : tokenIndex, indexOfSelectedItem : selectedIndex)
    }
    unsafe fn tokenField_shouldAddObjects_atIndex_(
        &self,
        tokenField: NSTokenField,
        tokens: NSArray,
        index: NSUInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, shouldAddObjects : tokens, atIndex : index)
    }
    unsafe fn tokenField_displayStringForRepresentedObject_(
        &self,
        tokenField: NSTokenField,
        representedObject: id,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, displayStringForRepresentedObject : representedObject)
    }
    unsafe fn tokenField_editingStringForRepresentedObject_(
        &self,
        tokenField: NSTokenField,
        representedObject: id,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, editingStringForRepresentedObject : representedObject)
    }
    unsafe fn tokenField_representedObjectForEditingString_(
        &self,
        tokenField: NSTokenField,
        editingString: NSString,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, representedObjectForEditingString : editingString)
    }
    unsafe fn tokenField_writeRepresentedObjects_toPasteboard_(
        &self,
        tokenField: NSTokenField,
        objects: NSArray,
        pboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, writeRepresentedObjects : objects, toPasteboard : pboard)
    }
    unsafe fn tokenField_readFromPasteboard_(
        &self,
        tokenField: NSTokenField,
        pboard: NSPasteboard,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, readFromPasteboard : pboard)
    }
    unsafe fn tokenField_menuForRepresentedObject_(
        &self,
        tokenField: NSTokenField,
        representedObject: id,
    ) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, menuForRepresentedObject : representedObject)
    }
    unsafe fn tokenField_hasMenuForRepresentedObject_(
        &self,
        tokenField: NSTokenField,
        representedObject: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, hasMenuForRepresentedObject : representedObject)
    }
    unsafe fn tokenField_styleForRepresentedObject_(
        &self,
        tokenField: NSTokenField,
        representedObject: id,
    ) -> NSTokenStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tokenField : tokenField, styleForRepresentedObject : representedObject)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTokenField(pub id);
impl std::ops::Deref for NSTokenField {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTokenField {}
impl NSTokenField {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTokenField").unwrap(), alloc) })
    }
}
impl INSTextField for NSTokenField {}
impl PNSUserInterfaceValidations for NSTokenField {}
impl PNSAccessibilityNavigableStaticText for NSTokenField {}
impl PNSTextContent for NSTokenField {}
impl From<NSTokenField> for NSTextField {
    fn from(child: NSTokenField) -> NSTextField {
        NSTextField(child.0)
    }
}
impl std::convert::TryFrom<NSTextField> for NSTokenField {
    type Error = &'static str;
    fn try_from(parent: NSTextField) -> Result<NSTokenField, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTokenField").unwrap()) };
        if is_kind_of {
            Ok(NSTokenField(parent.0))
        } else {
            Err("This NSTextField cannot be downcasted to NSTokenField")
        }
    }
}
impl INSControl for NSTokenField {}
impl INSView for NSTokenField {}
impl PNSAnimatablePropertyContainer for NSTokenField {}
impl PNSUserInterfaceItemIdentification for NSTokenField {}
impl PNSDraggingDestination for NSTokenField {}
impl PNSAppearanceCustomization for NSTokenField {}
impl PNSAccessibilityElement for NSTokenField {}
impl PNSAccessibility for NSTokenField {}
impl INSResponder for NSTokenField {}
impl PNSCoding for NSTokenField {}
impl INSObject for NSTokenField {}
impl PNSObject for NSTokenField {}
impl INSTokenField for NSTokenField {}
pub trait INSTokenField: Sized + std::ops::Deref {
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn tokenStyle(&self) -> NSTokenStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tokenStyle)
    }
    unsafe fn setTokenStyle_(&self, tokenStyle: NSTokenStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTokenStyle : tokenStyle)
    }
    unsafe fn completionDelay(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completionDelay)
    }
    unsafe fn setCompletionDelay_(&self, completionDelay: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletionDelay : completionDelay)
    }
    unsafe fn tokenizingCharacterSet(&self) -> NSCharacterSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tokenizingCharacterSet)
    }
    unsafe fn setTokenizingCharacterSet_(&self, tokenizingCharacterSet: NSCharacterSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTokenizingCharacterSet : tokenizingCharacterSet)
    }
    unsafe fn defaultCompletionDelay() -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTokenField").unwrap(), defaultCompletionDelay)
    }
    unsafe fn defaultTokenizingCharacterSet() -> NSCharacterSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTokenField").unwrap(), defaultTokenizingCharacterSet)
    }
}
pub type NSTrackingAreaOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTrackingArea(pub id);
impl std::ops::Deref for NSTrackingArea {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTrackingArea {}
impl NSTrackingArea {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTrackingArea").unwrap(), alloc) })
    }
}
impl PNSCopying for NSTrackingArea {}
impl PNSCoding for NSTrackingArea {}
impl INSObject for NSTrackingArea {}
impl PNSObject for NSTrackingArea {}
impl std::convert::TryFrom<NSObject> for NSTrackingArea {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTrackingArea, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTrackingArea").unwrap()) };
        if is_kind_of {
            Ok(NSTrackingArea(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTrackingArea")
        }
    }
}
impl INSTrackingArea for NSTrackingArea {}
pub trait INSTrackingArea: Sized + std::ops::Deref {
    unsafe fn initWithRect_options_owner_userInfo_(
        &self,
        rect: NSRect,
        options: NSTrackingAreaOptions,
        owner: id,
        userInfo: NSDictionary,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRect : rect, options : options, owner : owner, userInfo : userInfo)
    }
    unsafe fn rect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rect)
    }
    unsafe fn options(&self) -> NSTrackingAreaOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, options)
    }
    unsafe fn owner(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, owner)
    }
    unsafe fn userInfo(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInfo)
    }
}
pub type NSToolbarUserInfoKey = NSString;
pub type NSToolbarDisplayMode = NSUInteger;
pub type NSToolbarSizeMode = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSToolbar(pub id);
impl std::ops::Deref for NSToolbar {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSToolbar {}
impl NSToolbar {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSToolbar").unwrap(), alloc) })
    }
}
impl INSObject for NSToolbar {}
impl PNSObject for NSToolbar {}
impl std::convert::TryFrom<NSObject> for NSToolbar {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSToolbar, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSToolbar").unwrap()) };
        if is_kind_of {
            Ok(NSToolbar(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSToolbar")
        }
    }
}
impl INSToolbar for NSToolbar {}
pub trait INSToolbar: Sized + std::ops::Deref {
    unsafe fn initWithIdentifier_(&self, identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn insertItemWithItemIdentifier_atIndex_(
        &self,
        itemIdentifier: NSString,
        index: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemWithItemIdentifier : itemIdentifier, atIndex : index)
    }
    unsafe fn removeItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemAtIndex : index)
    }
    unsafe fn removeItemWithItemIdentifier_(&self, itemIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemWithItemIdentifier : itemIdentifier)
    }
    unsafe fn runCustomizationPalette_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, runCustomizationPalette : sender)
    }
    unsafe fn validateVisibleItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validateVisibleItems)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
    unsafe fn setVisible_(&self, visible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisible : visible)
    }
    unsafe fn customizationPaletteIsRunning(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationPaletteIsRunning)
    }
    unsafe fn displayMode(&self) -> NSToolbarDisplayMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayMode)
    }
    unsafe fn setDisplayMode_(&self, displayMode: NSToolbarDisplayMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayMode : displayMode)
    }
    unsafe fn selectedItemIdentifier(&self) -> NSToolbarItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedItemIdentifier)
    }
    unsafe fn setSelectedItemIdentifier_(&self, selectedItemIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedItemIdentifier : selectedItemIdentifier)
    }
    unsafe fn allowsUserCustomization(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsUserCustomization)
    }
    unsafe fn setAllowsUserCustomization_(&self, allowsUserCustomization: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsUserCustomization : allowsUserCustomization)
    }
    unsafe fn allowsDisplayModeCustomization(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsDisplayModeCustomization)
    }
    unsafe fn setAllowsDisplayModeCustomization_(&self, allowsDisplayModeCustomization: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsDisplayModeCustomization : allowsDisplayModeCustomization)
    }
    unsafe fn identifier(&self) -> NSToolbarIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn items(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, items)
    }
    unsafe fn visibleItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibleItems)
    }
    unsafe fn itemIdentifiers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemIdentifiers)
    }
    unsafe fn setItemIdentifiers_(&self, itemIdentifiers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemIdentifiers : itemIdentifiers)
    }
    unsafe fn centeredItemIdentifiers(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, centeredItemIdentifiers)
    }
    unsafe fn setCenteredItemIdentifiers_(&self, centeredItemIdentifiers: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCenteredItemIdentifiers : centeredItemIdentifiers)
    }
    unsafe fn autosavesConfiguration(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosavesConfiguration)
    }
    unsafe fn setAutosavesConfiguration_(&self, autosavesConfiguration: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosavesConfiguration : autosavesConfiguration)
    }
    unsafe fn allowsExtensionItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsExtensionItems)
    }
    unsafe fn setAllowsExtensionItems_(&self, allowsExtensionItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsExtensionItems : allowsExtensionItems)
    }
}
pub trait PNSToolbarDelegate: Sized + std::ops::Deref {
    unsafe fn toolbar_itemForItemIdentifier_willBeInsertedIntoToolbar_(
        &self,
        toolbar: NSToolbar,
        itemIdentifier: NSString,
        flag: BOOL,
    ) -> NSToolbarItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbar : toolbar, itemForItemIdentifier : itemIdentifier, willBeInsertedIntoToolbar : flag)
    }
    unsafe fn toolbarDefaultItemIdentifiers_(&self, toolbar: NSToolbar) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarDefaultItemIdentifiers : toolbar)
    }
    unsafe fn toolbarAllowedItemIdentifiers_(&self, toolbar: NSToolbar) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarAllowedItemIdentifiers : toolbar)
    }
    unsafe fn toolbarSelectableItemIdentifiers_(&self, toolbar: NSToolbar) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarSelectableItemIdentifiers : toolbar)
    }
    unsafe fn toolbarImmovableItemIdentifiers_(&self, toolbar: NSToolbar) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarImmovableItemIdentifiers : toolbar)
    }
    unsafe fn toolbar_itemIdentifier_canBeInsertedAtIndex_(
        &self,
        toolbar: NSToolbar,
        itemIdentifier: NSString,
        index: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbar : toolbar, itemIdentifier : itemIdentifier, canBeInsertedAtIndex : index)
    }
    unsafe fn toolbarWillAddItem_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarWillAddItem : notification)
    }
    unsafe fn toolbarDidRemoveItem_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarDidRemoveItem : notification)
    }
}
impl NSToolbar_NSDeprecated for NSToolbar {}
pub type NSToolbarItemStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSToolbarItem(pub id);
impl std::ops::Deref for NSToolbarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSToolbarItem {}
impl NSToolbarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSToolbarItem").unwrap(), alloc) })
    }
}
impl PNSCopying for NSToolbarItem {}
impl INSObject for NSToolbarItem {}
impl PNSObject for NSToolbarItem {}
impl std::convert::TryFrom<NSObject> for NSToolbarItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSToolbarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSToolbarItem").unwrap()) };
        if is_kind_of {
            Ok(NSToolbarItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSToolbarItem")
        }
    }
}
impl INSToolbarItem for NSToolbarItem {}
pub trait INSToolbarItem: Sized + std::ops::Deref {
    unsafe fn initWithItemIdentifier_(&self, itemIdentifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithItemIdentifier : itemIdentifier)
    }
    unsafe fn validate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validate)
    }
    unsafe fn itemIdentifier(&self) -> NSToolbarItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemIdentifier)
    }
    unsafe fn toolbar(&self) -> NSToolbar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolbar)
    }
    unsafe fn label(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, label)
    }
    unsafe fn setLabel_(&self, label: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label)
    }
    unsafe fn paletteLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paletteLabel)
    }
    unsafe fn setPaletteLabel_(&self, paletteLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPaletteLabel : paletteLabel)
    }
    unsafe fn possibleLabels(&self) -> NSSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, possibleLabels)
    }
    unsafe fn setPossibleLabels_(&self, possibleLabels: NSSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPossibleLabels : possibleLabels)
    }
    unsafe fn toolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolTip)
    }
    unsafe fn setToolTip_(&self, toolTip: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip)
    }
    unsafe fn menuFormRepresentation(&self) -> NSMenuItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menuFormRepresentation)
    }
    unsafe fn setMenuFormRepresentation_(&self, menuFormRepresentation: NSMenuItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenuFormRepresentation : menuFormRepresentation)
    }
    unsafe fn tag(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tag)
    }
    unsafe fn setTag_(&self, tag: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTag : tag)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn isBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBordered)
    }
    unsafe fn setBordered_(&self, bordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : bordered)
    }
    unsafe fn backgroundTintColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundTintColor)
    }
    unsafe fn setBackgroundTintColor_(&self, backgroundTintColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundTintColor : backgroundTintColor)
    }
    unsafe fn style(&self) -> NSToolbarItemStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, style)
    }
    unsafe fn setStyle_(&self, style: NSToolbarItemStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStyle : style)
    }
    unsafe fn isNavigational(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isNavigational)
    }
    unsafe fn setNavigational_(&self, navigational: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNavigational : navigational)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn minSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minSize)
    }
    unsafe fn setMinSize_(&self, minSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinSize : minSize)
    }
    unsafe fn maxSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxSize)
    }
    unsafe fn setMaxSize_(&self, maxSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxSize : maxSize)
    }
    unsafe fn visibilityPriority(&self) -> NSToolbarItemVisibilityPriority
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, visibilityPriority)
    }
    unsafe fn setVisibilityPriority_(&self, visibilityPriority: NSToolbarItemVisibilityPriority)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisibilityPriority : visibilityPriority)
    }
    unsafe fn badge(&self) -> NSItemBadge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, badge)
    }
    unsafe fn setBadge_(&self, badge: NSItemBadge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBadge : badge)
    }
    unsafe fn autovalidates(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autovalidates)
    }
    unsafe fn setAutovalidates_(&self, autovalidates: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutovalidates : autovalidates)
    }
    unsafe fn allowsDuplicatesInToolbar(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsDuplicatesInToolbar)
    }
}
impl NSToolbarItem_ for NSToolbarItem {}
pub trait PNSToolbarItemValidation: Sized + std::ops::Deref {
    unsafe fn validateToolbarItem_(&self, item: NSToolbarItem) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateToolbarItem : item)
    }
}
pub trait PNSCloudSharingValidation: Sized + std::ops::Deref {
    unsafe fn cloudShareForUserInterfaceItem_(&self, item: *mut u64) -> CKShare
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cloudShareForUserInterfaceItem : item)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTrackingSeparatorToolbarItem(pub id);
impl std::ops::Deref for NSTrackingSeparatorToolbarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTrackingSeparatorToolbarItem {}
impl NSTrackingSeparatorToolbarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTrackingSeparatorToolbarItem").unwrap(), alloc) })
    }
}
impl INSToolbarItem for NSTrackingSeparatorToolbarItem {}
impl PNSCopying for NSTrackingSeparatorToolbarItem {}
impl From<NSTrackingSeparatorToolbarItem> for NSToolbarItem {
    fn from(child: NSTrackingSeparatorToolbarItem) -> NSToolbarItem {
        NSToolbarItem(child.0)
    }
}
impl std::convert::TryFrom<NSToolbarItem> for NSTrackingSeparatorToolbarItem {
    type Error = &'static str;
    fn try_from(parent: NSToolbarItem) -> Result<NSTrackingSeparatorToolbarItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTrackingSeparatorToolbarItem").unwrap())
        };
        if is_kind_of {
            Ok(NSTrackingSeparatorToolbarItem(parent.0))
        } else {
            Err("This NSToolbarItem cannot be downcasted to NSTrackingSeparatorToolbarItem")
        }
    }
}
impl INSObject for NSTrackingSeparatorToolbarItem {}
impl PNSObject for NSTrackingSeparatorToolbarItem {}
impl INSTrackingSeparatorToolbarItem for NSTrackingSeparatorToolbarItem {}
pub trait INSTrackingSeparatorToolbarItem: Sized + std::ops::Deref {
    unsafe fn splitView(&self) -> NSSplitView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, splitView)
    }
    unsafe fn setSplitView_(&self, splitView: NSSplitView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSplitView : splitView)
    }
    unsafe fn dividerIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dividerIndex)
    }
    unsafe fn setDividerIndex_(&self, dividerIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDividerIndex : dividerIndex)
    }
    unsafe fn trackingSeparatorToolbarItemWithIdentifier_splitView_dividerIndex_(
        identifier: NSString,
        splitView: NSSplitView,
        dividerIndex: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTrackingSeparatorToolbarItem").unwrap(), trackingSeparatorToolbarItemWithIdentifier : identifier, splitView : splitView, dividerIndex : dividerIndex)
    }
}
pub type NSViewLayoutRegionAdaptivityAxis = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSViewLayoutRegion(pub id);
impl std::ops::Deref for NSViewLayoutRegion {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSViewLayoutRegion {}
impl NSViewLayoutRegion {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSViewLayoutRegion").unwrap(), alloc) })
    }
}
impl INSObject for NSViewLayoutRegion {}
impl PNSObject for NSViewLayoutRegion {}
impl std::convert::TryFrom<NSObject> for NSViewLayoutRegion {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSViewLayoutRegion, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSViewLayoutRegion").unwrap()) };
        if is_kind_of {
            Ok(NSViewLayoutRegion(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSViewLayoutRegion")
        }
    }
}
impl INSViewLayoutRegion for NSViewLayoutRegion {}
pub trait INSViewLayoutRegion: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn safeAreaLayoutRegionWithCornerAdaptation_(
        adaptivityAxis: NSViewLayoutRegionAdaptivityAxis,
    ) -> NSViewLayoutRegion
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSViewLayoutRegion").unwrap(), safeAreaLayoutRegionWithCornerAdaptation : adaptivityAxis)
    }
    unsafe fn marginsLayoutRegionWithCornerAdaptation_(
        adaptivityAxis: NSViewLayoutRegionAdaptivityAxis,
    ) -> NSViewLayoutRegion
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSViewLayoutRegion").unwrap(), marginsLayoutRegionWithCornerAdaptation : adaptivityAxis)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSViewLayoutRegion").unwrap(), new)
    }
}
impl NSView_LayoutRegions for NSView {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWindowTab(pub id);
impl std::ops::Deref for NSWindowTab {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWindowTab {}
impl NSWindowTab {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindowTab").unwrap(), alloc) })
    }
}
impl INSObject for NSWindowTab {}
impl PNSObject for NSWindowTab {}
impl std::convert::TryFrom<NSObject> for NSWindowTab {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWindowTab, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWindowTab").unwrap()) };
        if is_kind_of {
            Ok(NSWindowTab(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWindowTab")
        }
    }
}
impl INSWindowTab for NSWindowTab {}
pub trait INSWindowTab: Sized + std::ops::Deref {
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn attributedTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedTitle)
    }
    unsafe fn setAttributedTitle_(&self, attributedTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedTitle : attributedTitle)
    }
    unsafe fn toolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolTip)
    }
    unsafe fn setToolTip_(&self, toolTip: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWindowTabGroup(pub id);
impl std::ops::Deref for NSWindowTabGroup {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWindowTabGroup {}
impl NSWindowTabGroup {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindowTabGroup").unwrap(), alloc) })
    }
}
impl INSObject for NSWindowTabGroup {}
impl PNSObject for NSWindowTabGroup {}
impl std::convert::TryFrom<NSObject> for NSWindowTabGroup {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWindowTabGroup, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWindowTabGroup").unwrap()) };
        if is_kind_of {
            Ok(NSWindowTabGroup(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWindowTabGroup")
        }
    }
}
impl INSWindowTabGroup for NSWindowTabGroup {}
pub trait INSWindowTabGroup: Sized + std::ops::Deref {
    unsafe fn addWindow_(&self, window: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addWindow : window)
    }
    unsafe fn insertWindow_atIndex_(&self, window: NSWindow, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertWindow : window, atIndex : index)
    }
    unsafe fn removeWindow_(&self, window: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeWindow : window)
    }
    unsafe fn identifier(&self) -> NSWindowTabbingIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn windows(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windows)
    }
    unsafe fn isOverviewVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOverviewVisible)
    }
    unsafe fn setOverviewVisible_(&self, overviewVisible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOverviewVisible : overviewVisible)
    }
    unsafe fn isTabBarVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTabBarVisible)
    }
    unsafe fn selectedWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedWindow)
    }
    unsafe fn setSelectedWindow_(&self, selectedWindow: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedWindow : selectedWindow)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWindowController(pub id);
impl std::ops::Deref for NSWindowController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWindowController {}
impl NSWindowController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindowController").unwrap(), alloc) })
    }
}
impl PNSSeguePerforming for NSWindowController {}
impl INSResponder for NSWindowController {}
impl PNSCoding for NSWindowController {}
impl std::convert::TryFrom<NSResponder> for NSWindowController {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSWindowController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWindowController").unwrap()) };
        if is_kind_of {
            Ok(NSWindowController(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSWindowController")
        }
    }
}
impl INSObject for NSWindowController {}
impl PNSObject for NSWindowController {}
impl INSWindowController for NSWindowController {}
pub trait INSWindowController: Sized + std::ops::Deref {
    unsafe fn initWithWindow_(&self, window: NSWindow) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWindow : window)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initWithWindowNibName_(&self, windowNibName: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWindowNibName : windowNibName)
    }
    unsafe fn initWithWindowNibName_owner_(
        &self,
        windowNibName: NSString,
        owner: id,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWindowNibName : windowNibName, owner : owner)
    }
    unsafe fn initWithWindowNibPath_owner_(
        &self,
        windowNibPath: NSString,
        owner: id,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithWindowNibPath : windowNibPath, owner : owner)
    }
    unsafe fn setDocumentEdited_(&self, dirtyFlag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocumentEdited : dirtyFlag)
    }
    unsafe fn synchronizeWindowTitleWithDocumentName(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, synchronizeWindowTitleWithDocumentName)
    }
    unsafe fn windowTitleForDocumentDisplayName_(&self, displayName: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, windowTitleForDocumentDisplayName : displayName)
    }
    unsafe fn windowWillLoad(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowWillLoad)
    }
    unsafe fn windowDidLoad(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowDidLoad)
    }
    unsafe fn loadWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, loadWindow)
    }
    unsafe fn close(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, close)
    }
    unsafe fn showWindow_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showWindow : sender)
    }
    unsafe fn windowNibName(&self) -> NSNibName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowNibName)
    }
    unsafe fn windowNibPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowNibPath)
    }
    unsafe fn owner(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, owner)
    }
    unsafe fn windowFrameAutosaveName(&self) -> NSWindowFrameAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windowFrameAutosaveName)
    }
    unsafe fn setWindowFrameAutosaveName_(&self, windowFrameAutosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWindowFrameAutosaveName : windowFrameAutosaveName)
    }
    unsafe fn shouldCascadeWindows(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shouldCascadeWindows)
    }
    unsafe fn setShouldCascadeWindows_(&self, shouldCascadeWindows: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShouldCascadeWindows : shouldCascadeWindows)
    }
    unsafe fn previewRepresentableActivityItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, previewRepresentableActivityItems)
    }
    unsafe fn setPreviewRepresentableActivityItems_(
        &self,
        previewRepresentableActivityItems: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreviewRepresentableActivityItems : previewRepresentableActivityItems)
    }
    unsafe fn document(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, document)
    }
    unsafe fn setDocument_(&self, document: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDocument : document)
    }
    unsafe fn shouldCloseDocument(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shouldCloseDocument)
    }
    unsafe fn setShouldCloseDocument_(&self, shouldCloseDocument: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShouldCloseDocument : shouldCloseDocument)
    }
    unsafe fn contentViewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentViewController)
    }
    unsafe fn setContentViewController_(&self, contentViewController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentViewController : contentViewController)
    }
    unsafe fn window(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, window)
    }
    unsafe fn setWindow_(&self, window: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWindow : window)
    }
    unsafe fn isWindowLoaded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isWindowLoaded)
    }
}
impl NSWindowController_NSWindowControllerStoryboardingMethods for NSWindowController {}
impl NSWindowController_NSWindowControllerDismissing for NSWindowController {}
pub trait PNSComboBoxDataSource: Sized + std::ops::Deref {
    unsafe fn numberOfItemsInComboBox_(&self, comboBox: NSComboBox) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfItemsInComboBox : comboBox)
    }
    unsafe fn comboBox_objectValueForItemAtIndex_(
        &self,
        comboBox: NSComboBox,
        index: NSInteger,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBox : comboBox, objectValueForItemAtIndex : index)
    }
    unsafe fn comboBox_indexOfItemWithStringValue_(
        &self,
        comboBox: NSComboBox,
        string: NSString,
    ) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBox : comboBox, indexOfItemWithStringValue : string)
    }
    unsafe fn comboBox_completedString_(&self, comboBox: NSComboBox, string: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBox : comboBox, completedString : string)
    }
}
pub trait PNSComboBoxDelegate: Sized + std::ops::Deref {
    unsafe fn comboBoxWillPopUp_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxWillPopUp : notification)
    }
    unsafe fn comboBoxWillDismiss_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxWillDismiss : notification)
    }
    unsafe fn comboBoxSelectionDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxSelectionDidChange : notification)
    }
    unsafe fn comboBoxSelectionIsChanging_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxSelectionIsChanging : notification)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSComboBox(pub id);
impl std::ops::Deref for NSComboBox {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSComboBox {}
impl NSComboBox {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSComboBox").unwrap(), alloc) })
    }
}
impl INSTextField for NSComboBox {}
impl PNSUserInterfaceValidations for NSComboBox {}
impl PNSAccessibilityNavigableStaticText for NSComboBox {}
impl PNSTextContent for NSComboBox {}
impl std::convert::TryFrom<NSTextField> for NSComboBox {
    type Error = &'static str;
    fn try_from(parent: NSTextField) -> Result<NSComboBox, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSComboBox").unwrap()) };
        if is_kind_of {
            Ok(NSComboBox(parent.0))
        } else {
            Err("This NSTextField cannot be downcasted to NSComboBox")
        }
    }
}
impl INSControl for NSComboBox {}
impl INSView for NSComboBox {}
impl PNSAnimatablePropertyContainer for NSComboBox {}
impl PNSUserInterfaceItemIdentification for NSComboBox {}
impl PNSDraggingDestination for NSComboBox {}
impl PNSAppearanceCustomization for NSComboBox {}
impl PNSAccessibilityElement for NSComboBox {}
impl PNSAccessibility for NSComboBox {}
impl INSResponder for NSComboBox {}
impl PNSCoding for NSComboBox {}
impl INSObject for NSComboBox {}
impl PNSObject for NSComboBox {}
impl INSComboBox for NSComboBox {}
pub trait INSComboBox: Sized + std::ops::Deref {
    unsafe fn reloadData(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadData)
    }
    unsafe fn noteNumberOfItemsChanged(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, noteNumberOfItemsChanged)
    }
    unsafe fn scrollItemAtIndexToTop_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollItemAtIndexToTop : index)
    }
    unsafe fn scrollItemAtIndexToVisible_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollItemAtIndexToVisible : index)
    }
    unsafe fn selectItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemAtIndex : index)
    }
    unsafe fn deselectItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectItemAtIndex : index)
    }
    unsafe fn addItemWithObjectValue_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemWithObjectValue : object)
    }
    unsafe fn addItemsWithObjectValues_(&self, objects: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemsWithObjectValues : objects)
    }
    unsafe fn insertItemWithObjectValue_atIndex_(&self, object: id, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemWithObjectValue : object, atIndex : index)
    }
    unsafe fn removeItemWithObjectValue_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemWithObjectValue : object)
    }
    unsafe fn removeItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemAtIndex : index)
    }
    unsafe fn removeAllItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllItems)
    }
    unsafe fn selectItemWithObjectValue_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemWithObjectValue : object)
    }
    unsafe fn itemObjectValueAtIndex_(&self, index: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemObjectValueAtIndex : index)
    }
    unsafe fn indexOfItemWithObjectValue_(&self, object: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithObjectValue : object)
    }
    unsafe fn hasVerticalScroller(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasVerticalScroller)
    }
    unsafe fn setHasVerticalScroller_(&self, hasVerticalScroller: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasVerticalScroller : hasVerticalScroller)
    }
    unsafe fn intercellSpacing(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intercellSpacing)
    }
    unsafe fn setIntercellSpacing_(&self, intercellSpacing: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntercellSpacing : intercellSpacing)
    }
    unsafe fn itemHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemHeight)
    }
    unsafe fn setItemHeight_(&self, itemHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemHeight : itemHeight)
    }
    unsafe fn numberOfVisibleItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfVisibleItems)
    }
    unsafe fn setNumberOfVisibleItems_(&self, numberOfVisibleItems: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfVisibleItems : numberOfVisibleItems)
    }
    unsafe fn isButtonBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isButtonBordered)
    }
    unsafe fn setButtonBordered_(&self, buttonBordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonBordered : buttonBordered)
    }
    unsafe fn usesDataSource(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesDataSource)
    }
    unsafe fn setUsesDataSource_(&self, usesDataSource: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesDataSource : usesDataSource)
    }
    unsafe fn indexOfSelectedItem(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexOfSelectedItem)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn completes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completes)
    }
    unsafe fn setCompletes_(&self, completes: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletes : completes)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn dataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataSource)
    }
    unsafe fn setDataSource_(&self, dataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataSource : dataSource)
    }
    unsafe fn objectValueOfSelectedItem(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValueOfSelectedItem)
    }
    unsafe fn objectValues(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValues)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSComboBoxCell(pub id);
impl std::ops::Deref for NSComboBoxCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSComboBoxCell {}
impl NSComboBoxCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSComboBoxCell").unwrap(), alloc) })
    }
}
impl INSTextFieldCell for NSComboBoxCell {}
impl std::convert::TryFrom<NSTextFieldCell> for NSComboBoxCell {
    type Error = &'static str;
    fn try_from(parent: NSTextFieldCell) -> Result<NSComboBoxCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSComboBoxCell").unwrap()) };
        if is_kind_of {
            Ok(NSComboBoxCell(parent.0))
        } else {
            Err("This NSTextFieldCell cannot be downcasted to NSComboBoxCell")
        }
    }
}
impl INSActionCell for NSComboBoxCell {}
impl INSCell for NSComboBoxCell {}
impl PNSCopying for NSComboBoxCell {}
impl PNSCoding for NSComboBoxCell {}
impl PNSUserInterfaceItemIdentification for NSComboBoxCell {}
impl PNSAccessibilityElement for NSComboBoxCell {}
impl PNSAccessibility for NSComboBoxCell {}
impl INSObject for NSComboBoxCell {}
impl PNSObject for NSComboBoxCell {}
impl INSComboBoxCell for NSComboBoxCell {}
pub trait INSComboBoxCell: Sized + std::ops::Deref {
    unsafe fn reloadData(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadData)
    }
    unsafe fn noteNumberOfItemsChanged(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, noteNumberOfItemsChanged)
    }
    unsafe fn scrollItemAtIndexToTop_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollItemAtIndexToTop : index)
    }
    unsafe fn scrollItemAtIndexToVisible_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollItemAtIndexToVisible : index)
    }
    unsafe fn selectItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemAtIndex : index)
    }
    unsafe fn deselectItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectItemAtIndex : index)
    }
    unsafe fn completedString_(&self, string: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, completedString : string)
    }
    unsafe fn addItemWithObjectValue_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemWithObjectValue : object)
    }
    unsafe fn addItemsWithObjectValues_(&self, objects: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addItemsWithObjectValues : objects)
    }
    unsafe fn insertItemWithObjectValue_atIndex_(&self, object: id, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemWithObjectValue : object, atIndex : index)
    }
    unsafe fn removeItemWithObjectValue_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemWithObjectValue : object)
    }
    unsafe fn removeItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemAtIndex : index)
    }
    unsafe fn removeAllItems(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllItems)
    }
    unsafe fn selectItemWithObjectValue_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectItemWithObjectValue : object)
    }
    unsafe fn itemObjectValueAtIndex_(&self, index: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemObjectValueAtIndex : index)
    }
    unsafe fn indexOfItemWithObjectValue_(&self, object: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfItemWithObjectValue : object)
    }
    unsafe fn hasVerticalScroller(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasVerticalScroller)
    }
    unsafe fn setHasVerticalScroller_(&self, hasVerticalScroller: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHasVerticalScroller : hasVerticalScroller)
    }
    unsafe fn intercellSpacing(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intercellSpacing)
    }
    unsafe fn setIntercellSpacing_(&self, intercellSpacing: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntercellSpacing : intercellSpacing)
    }
    unsafe fn itemHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, itemHeight)
    }
    unsafe fn setItemHeight_(&self, itemHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setItemHeight : itemHeight)
    }
    unsafe fn numberOfVisibleItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfVisibleItems)
    }
    unsafe fn setNumberOfVisibleItems_(&self, numberOfVisibleItems: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfVisibleItems : numberOfVisibleItems)
    }
    unsafe fn isButtonBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isButtonBordered)
    }
    unsafe fn setButtonBordered_(&self, buttonBordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setButtonBordered : buttonBordered)
    }
    unsafe fn usesDataSource(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesDataSource)
    }
    unsafe fn setUsesDataSource_(&self, usesDataSource: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesDataSource : usesDataSource)
    }
    unsafe fn indexOfSelectedItem(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexOfSelectedItem)
    }
    unsafe fn numberOfItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfItems)
    }
    unsafe fn completes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completes)
    }
    unsafe fn setCompletes_(&self, completes: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletes : completes)
    }
    unsafe fn dataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataSource)
    }
    unsafe fn setDataSource_(&self, dataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataSource : dataSource)
    }
    unsafe fn objectValueOfSelectedItem(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValueOfSelectedItem)
    }
    unsafe fn objectValues(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValues)
    }
}
pub trait PNSComboBoxCellDataSource: Sized + std::ops::Deref {
    unsafe fn numberOfItemsInComboBoxCell_(&self, comboBoxCell: NSComboBoxCell) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfItemsInComboBoxCell : comboBoxCell)
    }
    unsafe fn comboBoxCell_objectValueForItemAtIndex_(
        &self,
        comboBoxCell: NSComboBoxCell,
        index: NSInteger,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxCell : comboBoxCell, objectValueForItemAtIndex : index)
    }
    unsafe fn comboBoxCell_indexOfItemWithStringValue_(
        &self,
        comboBoxCell: NSComboBoxCell,
        string: NSString,
    ) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxCell : comboBoxCell, indexOfItemWithStringValue : string)
    }
    unsafe fn comboBoxCell_completedString_(
        &self,
        comboBoxCell: NSComboBoxCell,
        uncompletedString: NSString,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, comboBoxCell : comboBoxCell, completedString : uncompletedString)
    }
}
pub type NSComboButtonStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSComboButton(pub id);
impl std::ops::Deref for NSComboButton {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSComboButton {}
impl NSComboButton {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSComboButton").unwrap(), alloc) })
    }
}
impl INSControl for NSComboButton {}
impl std::convert::TryFrom<NSControl> for NSComboButton {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSComboButton, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSComboButton").unwrap()) };
        if is_kind_of {
            Ok(NSComboButton(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSComboButton")
        }
    }
}
impl INSView for NSComboButton {}
impl PNSAnimatablePropertyContainer for NSComboButton {}
impl PNSUserInterfaceItemIdentification for NSComboButton {}
impl PNSDraggingDestination for NSComboButton {}
impl PNSAppearanceCustomization for NSComboButton {}
impl PNSAccessibilityElement for NSComboButton {}
impl PNSAccessibility for NSComboButton {}
impl INSResponder for NSComboButton {}
impl PNSCoding for NSComboButton {}
impl INSObject for NSComboButton {}
impl PNSObject for NSComboButton {}
impl INSComboButton for NSComboButton {}
pub trait INSComboButton: Sized + std::ops::Deref {
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn imageScaling(&self) -> NSImageScaling
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageScaling)
    }
    unsafe fn setImageScaling_(&self, imageScaling: NSImageScaling)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageScaling : imageScaling)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn style(&self) -> NSComboButtonStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, style)
    }
    unsafe fn setStyle_(&self, style: NSComboButtonStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStyle : style)
    }
    unsafe fn comboButtonWithTitle_menu_target_action_(
        title: NSString,
        menu: NSMenu,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSComboButton").unwrap(), comboButtonWithTitle : title, menu : menu, target : target, action : action)
    }
    unsafe fn comboButtonWithImage_menu_target_action_(
        image: NSImage,
        menu: NSMenu,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSComboButton").unwrap(), comboButtonWithImage : image, menu : menu, target : target, action : action)
    }
    unsafe fn comboButtonWithTitle_image_menu_target_action_(
        title: NSString,
        image: NSImage,
        menu: NSMenu,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSComboButton").unwrap(), comboButtonWithTitle : title, image : image, menu : menu, target : target, action : action)
    }
}
pub trait PNSTextInput: Sized + std::ops::Deref {
    unsafe fn insertText_(&self, string: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertText : string)
    }
    unsafe fn doCommandBySelector_(&self, selector: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, doCommandBySelector : selector)
    }
    unsafe fn setMarkedText_selectedRange_(&self, string: id, selRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMarkedText : string, selectedRange : selRange)
    }
    unsafe fn unmarkText(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, unmarkText)
    }
    unsafe fn hasMarkedText(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasMarkedText)
    }
    unsafe fn conversationIdentifier(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, conversationIdentifier)
    }
    unsafe fn attributedSubstringFromRange_(&self, range: NSRange) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attributedSubstringFromRange : range)
    }
    unsafe fn markedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, markedRange)
    }
    unsafe fn selectedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRange)
    }
    unsafe fn firstRectForCharacterRange_(&self, range: NSRange) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, firstRectForCharacterRange : range)
    }
    unsafe fn characterIndexForPoint_(&self, point: NSPoint) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, characterIndexForPoint : point)
    }
    unsafe fn validAttributesForMarkedText(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, validAttributesForMarkedText)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSInputManager(pub id);
impl std::ops::Deref for NSInputManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSInputManager {}
impl NSInputManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSInputManager").unwrap(), alloc) })
    }
}
impl PNSTextInput for NSInputManager {}
impl INSObject for NSInputManager {}
impl PNSObject for NSInputManager {}
impl std::convert::TryFrom<NSObject> for NSInputManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSInputManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSInputManager").unwrap()) };
        if is_kind_of {
            Ok(NSInputManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSInputManager")
        }
    }
}
impl INSInputManager for NSInputManager {}
pub trait INSInputManager: Sized + std::ops::Deref {
    unsafe fn initWithName_host_(
        &self,
        inputServerName: NSString,
        hostName: NSString,
    ) -> NSInputManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithName : inputServerName, host : hostName)
    }
    unsafe fn localizedInputManagerName(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedInputManagerName)
    }
    unsafe fn markedTextAbandoned_(&self, cli: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, markedTextAbandoned : cli)
    }
    unsafe fn markedTextSelectionChanged_client_(&self, newSel: NSRange, cli: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, markedTextSelectionChanged : newSel, client : cli)
    }
    unsafe fn wantsToInterpretAllKeystrokes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToInterpretAllKeystrokes)
    }
    unsafe fn language(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, language)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn server(&self) -> NSInputServer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, server)
    }
    unsafe fn wantsToHandleMouseEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToHandleMouseEvents)
    }
    unsafe fn handleMouseEvent_(&self, mouseEvent: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleMouseEvent : mouseEvent)
    }
    unsafe fn wantsToDelayTextChangeNotifications(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToDelayTextChangeNotifications)
    }
    unsafe fn currentInputManager() -> NSInputManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSInputManager").unwrap(), currentInputManager)
    }
    unsafe fn cycleToNextInputLanguage_(sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSInputManager").unwrap(), cycleToNextInputLanguage : sender)
    }
    unsafe fn cycleToNextInputServerInLanguage_(sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSInputManager").unwrap(), cycleToNextInputServerInLanguage : sender)
    }
}
pub trait PNSTextAttachmentLayout: Sized + std::ops::Deref {
    unsafe fn imageForBounds_attributes_location_textContainer_(
        &self,
        bounds: CGRect,
        attributes: NSDictionary,
        location: *mut u64,
        textContainer: NSTextContainer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageForBounds : bounds, attributes : attributes, location : location, textContainer : textContainer)
    }
    unsafe fn attachmentBoundsForAttributes_location_textContainer_proposedLineFragment_position_(
        &self,
        attributes: NSDictionary,
        location: *mut u64,
        textContainer: NSTextContainer,
        proposedLineFragment: CGRect,
        position: CGPoint,
    ) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachmentBoundsForAttributes : attributes, location : location, textContainer : textContainer, proposedLineFragment : proposedLineFragment, position : position)
    }
    unsafe fn viewProviderForParentView_location_textContainer_(
        &self,
        parentView: NSView,
        location: *mut u64,
        textContainer: NSTextContainer,
    ) -> NSTextAttachmentViewProvider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewProviderForParentView : parentView, location : location, textContainer : textContainer)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextAttachmentViewProvider(pub id);
impl std::ops::Deref for NSTextAttachmentViewProvider {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextAttachmentViewProvider {}
impl NSTextAttachmentViewProvider {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextAttachmentViewProvider").unwrap(), alloc) })
    }
}
impl INSObject for NSTextAttachmentViewProvider {}
impl PNSObject for NSTextAttachmentViewProvider {}
impl std::convert::TryFrom<NSObject> for NSTextAttachmentViewProvider {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextAttachmentViewProvider, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextAttachmentViewProvider").unwrap()) };
        if is_kind_of {
            Ok(NSTextAttachmentViewProvider(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextAttachmentViewProvider")
        }
    }
}
impl INSTextAttachmentViewProvider for NSTextAttachmentViewProvider {}
pub trait INSTextAttachmentViewProvider: Sized + std::ops::Deref {
    unsafe fn initWithTextAttachment_parentView_textLayoutManager_location_(
        &self,
        textAttachment: NSTextAttachment,
        parentView: NSView,
        textLayoutManager: NSTextLayoutManager,
        location: *mut u64,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTextAttachment : textAttachment, parentView : parentView, textLayoutManager : textLayoutManager, location : location)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn loadView(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, loadView)
    }
    unsafe fn attachmentBoundsForAttributes_location_textContainer_proposedLineFragment_position_(
        &self,
        attributes: NSDictionary,
        location: *mut u64,
        textContainer: NSTextContainer,
        proposedLineFragment: CGRect,
        position: CGPoint,
    ) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachmentBoundsForAttributes : attributes, location : location, textContainer : textContainer, proposedLineFragment : proposedLineFragment, position : position)
    }
    unsafe fn textAttachment(&self) -> NSTextAttachment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textAttachment)
    }
    unsafe fn textLayoutManager(&self) -> NSTextLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLayoutManager)
    }
    unsafe fn location(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn tracksTextAttachmentViewBounds(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tracksTextAttachmentViewBounds)
    }
    unsafe fn setTracksTextAttachmentViewBounds_(&self, tracksTextAttachmentViewBounds: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTracksTextAttachmentViewBounds : tracksTextAttachmentViewBounds)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextAttachmentViewProvider").unwrap(), new)
    }
}
pub trait PNSTextAttachmentContainer: Sized + std::ops::Deref {
    unsafe fn imageForBounds_textContainer_characterIndex_(
        &self,
        imageBounds: CGRect,
        textContainer: NSTextContainer,
        charIndex: NSUInteger,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageForBounds : imageBounds, textContainer : textContainer, characterIndex : charIndex)
    }
    unsafe fn attachmentBoundsForTextContainer_proposedLineFragment_glyphPosition_characterIndex_(
        &self,
        textContainer: NSTextContainer,
        lineFrag: CGRect,
        position: CGPoint,
        charIndex: NSUInteger,
    ) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attachmentBoundsForTextContainer : textContainer, proposedLineFragment : lineFrag, glyphPosition : position, characterIndex : charIndex)
    }
}
pub trait PNSTextAttachmentCell: Sized + std::ops::Deref {
    unsafe fn drawWithFrame_inView_(&self, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawWithFrame : cellFrame, inView : controlView)
    }
    unsafe fn wantsToTrackMouse(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToTrackMouse)
    }
    unsafe fn highlight_withFrame_inView_(&self, flag: BOOL, cellFrame: NSRect, controlView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlight : flag, withFrame : cellFrame, inView : controlView)
    }
    unsafe fn trackMouse_inRect_ofView_untilMouseUp_(
        &self,
        theEvent: NSEvent,
        cellFrame: NSRect,
        controlView: NSView,
        flag: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackMouse : theEvent, inRect : cellFrame, ofView : controlView, untilMouseUp : flag)
    }
    unsafe fn cellSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellSize)
    }
    unsafe fn cellBaselineOffset(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cellBaselineOffset)
    }
    unsafe fn drawWithFrame_inView_characterIndex_(
        &self,
        cellFrame: NSRect,
        controlView: NSView,
        charIndex: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawWithFrame : cellFrame, inView : controlView, characterIndex : charIndex)
    }
    unsafe fn drawWithFrame_inView_characterIndex_layoutManager_(
        &self,
        cellFrame: NSRect,
        controlView: NSView,
        charIndex: NSUInteger,
        layoutManager: NSLayoutManager,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawWithFrame : cellFrame, inView : controlView, characterIndex : charIndex, layoutManager : layoutManager)
    }
    unsafe fn wantsToTrackMouseForEvent_inRect_ofView_atCharacterIndex_(
        &self,
        theEvent: NSEvent,
        cellFrame: NSRect,
        controlView: NSView,
        charIndex: NSUInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, wantsToTrackMouseForEvent : theEvent, inRect : cellFrame, ofView : controlView, atCharacterIndex : charIndex)
    }
    unsafe fn trackMouse_inRect_ofView_atCharacterIndex_untilMouseUp_(
        &self,
        theEvent: NSEvent,
        cellFrame: NSRect,
        controlView: NSView,
        charIndex: NSUInteger,
        flag: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackMouse : theEvent, inRect : cellFrame, ofView : controlView, atCharacterIndex : charIndex, untilMouseUp : flag)
    }
    unsafe fn cellFrameForTextContainer_proposedLineFragment_glyphPosition_characterIndex_(
        &self,
        textContainer: NSTextContainer,
        lineFrag: NSRect,
        position: NSPoint,
        charIndex: NSUInteger,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cellFrameForTextContainer : textContainer, proposedLineFragment : lineFrag, glyphPosition : position, characterIndex : charIndex)
    }
    unsafe fn attachment(&self) -> NSTextAttachment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attachment)
    }
    unsafe fn setAttachment_(&self, attachment: NSTextAttachment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttachment : attachment)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextAttachmentCell(pub id);
impl std::ops::Deref for NSTextAttachmentCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextAttachmentCell {}
impl NSTextAttachmentCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextAttachmentCell").unwrap(), alloc) })
    }
}
impl PNSTextAttachmentCell for NSTextAttachmentCell {}
impl INSCell for NSTextAttachmentCell {}
impl PNSCopying for NSTextAttachmentCell {}
impl PNSCoding for NSTextAttachmentCell {}
impl PNSUserInterfaceItemIdentification for NSTextAttachmentCell {}
impl PNSAccessibilityElement for NSTextAttachmentCell {}
impl PNSAccessibility for NSTextAttachmentCell {}
impl std::convert::TryFrom<NSCell> for NSTextAttachmentCell {
    type Error = &'static str;
    fn try_from(parent: NSCell) -> Result<NSTextAttachmentCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextAttachmentCell").unwrap()) };
        if is_kind_of {
            Ok(NSTextAttachmentCell(parent.0))
        } else {
            Err("This NSCell cannot be downcasted to NSTextAttachmentCell")
        }
    }
}
impl INSObject for NSTextAttachmentCell {}
impl PNSObject for NSTextAttachmentCell {}
impl INSTextAttachmentCell for NSTextAttachmentCell {}
pub trait INSTextAttachmentCell: Sized + std::ops::Deref {}
pub type NSSelectionGranularity = NSUInteger;
pub type NSSelectionAffinity = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextView(pub id);
impl std::ops::Deref for NSTextView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextView {}
impl NSTextView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextView").unwrap(), alloc) })
    }
}
impl PNSColorChanging for NSTextView {}
impl PNSMenuItemValidation for NSTextView {}
impl PNSUserInterfaceValidations for NSTextView {}
impl PNSTextInputClient for NSTextView {}
impl PNSTextLayoutOrientationProvider for NSTextView {}
impl PNSDraggingSource for NSTextView {}
impl PNSStandardKeyBindingResponding for NSTextView {}
impl PNSTextInput for NSTextView {}
impl PNSAccessibilityNavigableStaticText for NSTextView {}
impl PNSTextContent for NSTextView {}
impl INSText for NSTextView {}
impl PNSChangeSpelling for NSTextView {}
impl PNSIgnoreMisspelledWords for NSTextView {}
impl From<NSTextView> for NSText {
    fn from(child: NSTextView) -> NSText {
        NSText(child.0)
    }
}
impl std::convert::TryFrom<NSText> for NSTextView {
    type Error = &'static str;
    fn try_from(parent: NSText) -> Result<NSTextView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextView").unwrap()) };
        if is_kind_of {
            Ok(NSTextView(parent.0))
        } else {
            Err("This NSText cannot be downcasted to NSTextView")
        }
    }
}
impl INSView for NSTextView {}
impl PNSAnimatablePropertyContainer for NSTextView {}
impl PNSUserInterfaceItemIdentification for NSTextView {}
impl PNSDraggingDestination for NSTextView {}
impl PNSAppearanceCustomization for NSTextView {}
impl PNSAccessibilityElement for NSTextView {}
impl PNSAccessibility for NSTextView {}
impl INSResponder for NSTextView {}
impl PNSCoding for NSTextView {}
impl INSObject for NSTextView {}
impl PNSObject for NSTextView {}
impl INSTextView for NSTextView {}
pub trait INSTextView: Sized + std::ops::Deref {
    unsafe fn initWithFrame_textContainer_(
        &self,
        frameRect: NSRect,
        container: NSTextContainer,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect, textContainer : container)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initUsingTextLayoutManager_(&self, usingTextLayoutManager: BOOL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initUsingTextLayoutManager : usingTextLayoutManager)
    }
    unsafe fn replaceTextContainer_(&self, newContainer: NSTextContainer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceTextContainer : newContainer)
    }
    unsafe fn invalidateTextContainerOrigin(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateTextContainerOrigin)
    }
    unsafe fn insertText_(&self, insertString: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertText : insertString)
    }
    unsafe fn setConstrainedFrameSize_(&self, desiredSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setConstrainedFrameSize : desiredSize)
    }
    unsafe fn setAlignment_range_(&self, alignment: NSTextAlignment, range: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlignment : alignment, range : range)
    }
    unsafe fn setBaseWritingDirection_range_(
        &self,
        writingDirection: NSWritingDirection,
        range: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBaseWritingDirection : writingDirection, range : range)
    }
    unsafe fn turnOffKerning_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, turnOffKerning : sender)
    }
    unsafe fn tightenKerning_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tightenKerning : sender)
    }
    unsafe fn loosenKerning_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, loosenKerning : sender)
    }
    unsafe fn useStandardKerning_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, useStandardKerning : sender)
    }
    unsafe fn turnOffLigatures_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, turnOffLigatures : sender)
    }
    unsafe fn useStandardLigatures_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, useStandardLigatures : sender)
    }
    unsafe fn useAllLigatures_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, useAllLigatures : sender)
    }
    unsafe fn raiseBaseline_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, raiseBaseline : sender)
    }
    unsafe fn lowerBaseline_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lowerBaseline : sender)
    }
    unsafe fn toggleTraditionalCharacterShape_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggleTraditionalCharacterShape : sender)
    }
    unsafe fn outline_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outline : sender)
    }
    unsafe fn performFindPanelAction_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performFindPanelAction : sender)
    }
    unsafe fn alignJustified_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignJustified : sender)
    }
    unsafe fn changeColor_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeColor : sender)
    }
    unsafe fn changeAttributes_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeAttributes : sender)
    }
    unsafe fn changeDocumentBackgroundColor_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeDocumentBackgroundColor : sender)
    }
    unsafe fn orderFrontSpacingPanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFrontSpacingPanel : sender)
    }
    unsafe fn orderFrontLinkPanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFrontLinkPanel : sender)
    }
    unsafe fn orderFrontListPanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFrontListPanel : sender)
    }
    unsafe fn orderFrontTablePanel_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, orderFrontTablePanel : sender)
    }
    unsafe fn rulerView_didMoveMarker_(&self, ruler: NSRulerView, marker: NSRulerMarker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, didMoveMarker : marker)
    }
    unsafe fn rulerView_didRemoveMarker_(&self, ruler: NSRulerView, marker: NSRulerMarker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, didRemoveMarker : marker)
    }
    unsafe fn rulerView_didAddMarker_(&self, ruler: NSRulerView, marker: NSRulerMarker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, didAddMarker : marker)
    }
    unsafe fn rulerView_shouldMoveMarker_(&self, ruler: NSRulerView, marker: NSRulerMarker) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, shouldMoveMarker : marker)
    }
    unsafe fn rulerView_shouldAddMarker_(&self, ruler: NSRulerView, marker: NSRulerMarker) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, shouldAddMarker : marker)
    }
    unsafe fn rulerView_willMoveMarker_toLocation_(
        &self,
        ruler: NSRulerView,
        marker: NSRulerMarker,
        location: CGFloat,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, willMoveMarker : marker, toLocation : location)
    }
    unsafe fn rulerView_shouldRemoveMarker_(
        &self,
        ruler: NSRulerView,
        marker: NSRulerMarker,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, shouldRemoveMarker : marker)
    }
    unsafe fn rulerView_willAddMarker_atLocation_(
        &self,
        ruler: NSRulerView,
        marker: NSRulerMarker,
        location: CGFloat,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, willAddMarker : marker, atLocation : location)
    }
    unsafe fn rulerView_handleMouseDown_(&self, ruler: NSRulerView, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rulerView : ruler, handleMouseDown : event)
    }
    unsafe fn setNeedsDisplayInRect_avoidAdditionalLayout_(&self, rect: NSRect, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNeedsDisplayInRect : rect, avoidAdditionalLayout : flag)
    }
    unsafe fn drawInsertionPointInRect_color_turnedOn_(
        &self,
        rect: NSRect,
        color: NSColor,
        flag: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInsertionPointInRect : rect, color : color, turnedOn : flag)
    }
    unsafe fn drawViewBackgroundInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawViewBackgroundInRect : rect)
    }
    unsafe fn updateRuler(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateRuler)
    }
    unsafe fn updateFontPanel(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateFontPanel)
    }
    unsafe fn updateDragTypeRegistration(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, updateDragTypeRegistration)
    }
    unsafe fn selectionRangeForProposedRange_granularity_(
        &self,
        proposedCharRange: NSRange,
        granularity: NSSelectionGranularity,
    ) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectionRangeForProposedRange : proposedCharRange, granularity : granularity)
    }
    unsafe fn clickedOnLink_atIndex_(&self, link: id, charIndex: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, clickedOnLink : link, atIndex : charIndex)
    }
    unsafe fn startSpeaking_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startSpeaking : sender)
    }
    unsafe fn stopSpeaking_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopSpeaking : sender)
    }
    unsafe fn setLayoutOrientation_(&self, orientation: NSTextLayoutOrientation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayoutOrientation : orientation)
    }
    unsafe fn changeLayoutOrientation_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, changeLayoutOrientation : sender)
    }
    unsafe fn characterIndexForInsertionAtPoint_(&self, point: NSPoint) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, characterIndexForInsertionAtPoint : point)
    }
    unsafe fn performValidatedReplacementInRange_withAttributedString_(
        &self,
        range: NSRange,
        attributedString: NSAttributedString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performValidatedReplacementInRange : range, withAttributedString : attributedString)
    }
    unsafe fn textContainer(&self) -> NSTextContainer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContainer)
    }
    unsafe fn setTextContainer_(&self, textContainer: NSTextContainer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextContainer : textContainer)
    }
    unsafe fn textContainerInset(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContainerInset)
    }
    unsafe fn setTextContainerInset_(&self, textContainerInset: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextContainerInset : textContainerInset)
    }
    unsafe fn textContainerOrigin(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContainerOrigin)
    }
    unsafe fn layoutManager(&self) -> NSLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutManager)
    }
    unsafe fn textStorage(&self) -> NSTextStorage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textStorage)
    }
    unsafe fn textLayoutManager(&self) -> NSTextLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLayoutManager)
    }
    unsafe fn textContentStorage(&self) -> NSTextContentStorage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContentStorage)
    }
    unsafe fn shouldDrawInsertionPoint(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, shouldDrawInsertionPoint)
    }
    unsafe fn usesAdaptiveColorMappingForDarkAppearance(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesAdaptiveColorMappingForDarkAppearance)
    }
    unsafe fn setUsesAdaptiveColorMappingForDarkAppearance_(
        &self,
        usesAdaptiveColorMappingForDarkAppearance: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesAdaptiveColorMappingForDarkAppearance : usesAdaptiveColorMappingForDarkAppearance)
    }
    unsafe fn textViewUsingTextLayoutManager_(usingTextLayoutManager: BOOL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextView").unwrap(), textViewUsingTextLayoutManager : usingTextLayoutManager)
    }
    unsafe fn stronglyReferencesTextStorage() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextView").unwrap(), stronglyReferencesTextStorage)
    }
}
impl NSTextView_NSCompletion for NSTextView {}
impl NSTextView_NSPasteboard for NSTextView {}
impl NSTextView_NSDragging for NSTextView {}
impl NSTextView_NSSharing for NSTextView {}
impl NSTextView_NSTextChecking for NSTextView {}
impl NSTextView_NSQuickLookPreview for NSTextView {}
impl NSTextView_NSTextView_SharingService for NSTextView {}
impl NSTextView_NSTextView_TouchBar for NSTextView {}
impl NSTextView_NSTextView_Factory for NSTextView {}
impl NSTextView_NSTextView_TextHighlight for NSTextView {}
impl NSTextView_NSDeprecated for NSTextView {}
pub trait PNSTextViewDelegate: Sized + std::ops::Deref {
    unsafe fn textView_clickedOnLink_atIndex_(
        &self,
        textView: NSTextView,
        link: id,
        charIndex: NSUInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, clickedOnLink : link, atIndex : charIndex)
    }
    unsafe fn textView_clickedOnCell_inRect_atIndex_(
        &self,
        textView: NSTextView,
        cell: *mut u64,
        cellFrame: NSRect,
        charIndex: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, clickedOnCell : cell, inRect : cellFrame, atIndex : charIndex)
    }
    unsafe fn textView_doubleClickedOnCell_inRect_atIndex_(
        &self,
        textView: NSTextView,
        cell: *mut u64,
        cellFrame: NSRect,
        charIndex: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, doubleClickedOnCell : cell, inRect : cellFrame, atIndex : charIndex)
    }
    unsafe fn textView_draggedCell_inRect_event_atIndex_(
        &self,
        view: NSTextView,
        cell: *mut u64,
        rect: NSRect,
        event: NSEvent,
        charIndex: NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, draggedCell : cell, inRect : rect, event : event, atIndex : charIndex)
    }
    unsafe fn textView_writablePasteboardTypesForCell_atIndex_(
        &self,
        view: NSTextView,
        cell: *mut u64,
        charIndex: NSUInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, writablePasteboardTypesForCell : cell, atIndex : charIndex)
    }
    unsafe fn textView_writeCell_atIndex_toPasteboard_type_(
        &self,
        view: NSTextView,
        cell: *mut u64,
        charIndex: NSUInteger,
        pboard: NSPasteboard,
        type_: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, writeCell : cell, atIndex : charIndex, toPasteboard : pboard, r#type : type_)
    }
    unsafe fn textView_willChangeSelectionFromCharacterRange_toCharacterRange_(
        &self,
        textView: NSTextView,
        oldSelectedCharRange: NSRange,
        newSelectedCharRange: NSRange,
    ) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, willChangeSelectionFromCharacterRange : oldSelectedCharRange, toCharacterRange : newSelectedCharRange)
    }
    unsafe fn textView_willChangeSelectionFromCharacterRanges_toCharacterRanges_(
        &self,
        textView: NSTextView,
        oldSelectedCharRanges: NSArray,
        newSelectedCharRanges: NSArray,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, willChangeSelectionFromCharacterRanges : oldSelectedCharRanges, toCharacterRanges : newSelectedCharRanges)
    }
    unsafe fn textView_shouldChangeTextInRanges_replacementStrings_(
        &self,
        textView: NSTextView,
        affectedRanges: NSArray,
        replacementStrings: NSArray,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, shouldChangeTextInRanges : affectedRanges, replacementStrings : replacementStrings)
    }
    unsafe fn textView_shouldChangeTypingAttributes_toAttributes_(
        &self,
        textView: NSTextView,
        oldTypingAttributes: NSDictionary,
        newTypingAttributes: NSDictionary,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, shouldChangeTypingAttributes : oldTypingAttributes, toAttributes : newTypingAttributes)
    }
    unsafe fn textViewDidChangeSelection_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewDidChangeSelection : notification)
    }
    unsafe fn textViewDidChangeTypingAttributes_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewDidChangeTypingAttributes : notification)
    }
    unsafe fn textView_willDisplayToolTip_forCharacterAtIndex_(
        &self,
        textView: NSTextView,
        tooltip: NSString,
        characterIndex: NSUInteger,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, willDisplayToolTip : tooltip, forCharacterAtIndex : characterIndex)
    }
    unsafe fn textView_completions_forPartialWordRange_indexOfSelectedItem_(
        &self,
        textView: NSTextView,
        words: NSArray,
        charRange: NSRange,
        index: *mut NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, completions : words, forPartialWordRange : charRange, indexOfSelectedItem : index)
    }
    unsafe fn textView_shouldChangeTextInRange_replacementString_(
        &self,
        textView: NSTextView,
        affectedCharRange: NSRange,
        replacementString: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, shouldChangeTextInRange : affectedCharRange, replacementString : replacementString)
    }
    unsafe fn textView_doCommandBySelector_(
        &self,
        textView: NSTextView,
        commandSelector: objc2::runtime::Sel,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, doCommandBySelector : commandSelector)
    }
    unsafe fn textView_shouldSetSpellingState_range_(
        &self,
        textView: NSTextView,
        value: NSInteger,
        affectedCharRange: NSRange,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, shouldSetSpellingState : value, range : affectedCharRange)
    }
    unsafe fn textView_menu_forEvent_atIndex_(
        &self,
        view: NSTextView,
        menu: NSMenu,
        event: NSEvent,
        charIndex: NSUInteger,
    ) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, menu : menu, forEvent : event, atIndex : charIndex)
    }
    unsafe fn textView_willCheckTextInRange_options_types_(
        &self,
        view: NSTextView,
        range: NSRange,
        options: NSDictionary,
        checkingTypes: *mut NSTextCheckingTypes,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, willCheckTextInRange : range, options : options, types : checkingTypes)
    }
    unsafe fn textView_didCheckTextInRange_types_options_results_orthography_wordCount_(
        &self,
        view: NSTextView,
        range: NSRange,
        checkingTypes: NSTextCheckingTypes,
        options: NSDictionary,
        results: NSArray,
        orthography: NSOrthography,
        wordCount: NSInteger,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, didCheckTextInRange : range, types : checkingTypes, options : options, results : results, orthography : orthography, wordCount : wordCount)
    }
    unsafe fn textView_URLForContentsOfTextAttachment_atIndex_(
        &self,
        textView: NSTextView,
        textAttachment: NSTextAttachment,
        charIndex: NSUInteger,
    ) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, URLForContentsOfTextAttachment : textAttachment, atIndex : charIndex)
    }
    unsafe fn textView_willShowSharingServicePicker_forItems_(
        &self,
        textView: NSTextView,
        servicePicker: NSSharingServicePicker,
        items: NSArray,
    ) -> NSSharingServicePicker
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, willShowSharingServicePicker : servicePicker, forItems : items)
    }
    unsafe fn undoManagerForTextView_(&self, view: NSTextView) -> NSUndoManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, undoManagerForTextView : view)
    }
    unsafe fn textView_shouldUpdateTouchBarItemIdentifiers_(
        &self,
        textView: NSTextView,
        identifiers: NSArray,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, shouldUpdateTouchBarItemIdentifiers : identifiers)
    }
    unsafe fn textView_candidatesForSelectedRange_(
        &self,
        textView: NSTextView,
        selectedRange: NSRange,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, candidatesForSelectedRange : selectedRange)
    }
    unsafe fn textView_candidates_forSelectedRange_(
        &self,
        textView: NSTextView,
        candidates: NSArray,
        selectedRange: NSRange,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, candidates : candidates, forSelectedRange : selectedRange)
    }
    unsafe fn textView_shouldSelectCandidateAtIndex_(
        &self,
        textView: NSTextView,
        index: NSUInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, shouldSelectCandidateAtIndex : index)
    }
    unsafe fn textViewWritingToolsWillBegin_(&self, textView: NSTextView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewWritingToolsWillBegin : textView)
    }
    unsafe fn textViewWritingToolsDidEnd_(&self, textView: NSTextView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewWritingToolsDidEnd : textView)
    }
    unsafe fn textView_writingToolsIgnoredRangesInEnclosingRange_(
        &self,
        textView: NSTextView,
        enclosingRange: NSRange,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, writingToolsIgnoredRangesInEnclosingRange : enclosingRange)
    }
    unsafe fn textView_clickedOnLink_(&self, textView: NSTextView, link: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, clickedOnLink : link)
    }
    unsafe fn textView_clickedOnCell_inRect_(
        &self,
        textView: NSTextView,
        cell: *mut u64,
        cellFrame: NSRect,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, clickedOnCell : cell, inRect : cellFrame)
    }
    unsafe fn textView_doubleClickedOnCell_inRect_(
        &self,
        textView: NSTextView,
        cell: *mut u64,
        cellFrame: NSRect,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : textView, doubleClickedOnCell : cell, inRect : cellFrame)
    }
    unsafe fn textView_draggedCell_inRect_event_(
        &self,
        view: NSTextView,
        cell: *mut u64,
        rect: NSRect,
        event: NSEvent,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textView : view, draggedCell : cell, inRect : rect, event : event)
    }
}
pub type NSFindPanelAction = NSUInteger;
pub type NSPasteboardTypeFindPanelSearchOptionKey = NSString;
pub type NSFindPanelSubstringMatchType = NSUInteger;
pub type NSTableViewDropOperation = NSUInteger;
pub type NSTableViewColumnAutoresizingStyle = NSUInteger;
pub type NSTableViewGridLineStyle = NSUInteger;
pub type NSTableViewRowSizeStyle = NSInteger;
pub type NSTableViewStyle = NSInteger;
pub type NSTableViewSelectionHighlightStyle = NSInteger;
pub type NSTableViewDraggingDestinationFeedbackStyle = NSInteger;
pub type NSTableRowActionEdge = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableView(pub id);
impl std::ops::Deref for NSTableView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableView {}
impl NSTableView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableView").unwrap(), alloc) })
    }
}
impl PNSUserInterfaceValidations for NSTableView {}
impl PNSTextViewDelegate for NSTableView {}
impl PNSDraggingSource for NSTableView {}
impl PNSAccessibilityTable for NSTableView {}
impl INSControl for NSTableView {}
impl std::convert::TryFrom<NSControl> for NSTableView {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSTableView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableView").unwrap()) };
        if is_kind_of {
            Ok(NSTableView(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSTableView")
        }
    }
}
impl INSView for NSTableView {}
impl PNSAnimatablePropertyContainer for NSTableView {}
impl PNSUserInterfaceItemIdentification for NSTableView {}
impl PNSDraggingDestination for NSTableView {}
impl PNSAppearanceCustomization for NSTableView {}
impl PNSAccessibilityElement for NSTableView {}
impl PNSAccessibility for NSTableView {}
impl INSResponder for NSTableView {}
impl PNSCoding for NSTableView {}
impl INSObject for NSTableView {}
impl PNSObject for NSTableView {}
impl INSTableView for NSTableView {}
pub trait INSTableView: Sized + std::ops::Deref {
    unsafe fn initWithFrame_(&self, frameRect: NSRect) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn noteHeightOfRowsWithIndexesChanged_(&self, indexSet: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noteHeightOfRowsWithIndexesChanged : indexSet)
    }
    unsafe fn addTableColumn_(&self, tableColumn: NSTableColumn)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTableColumn : tableColumn)
    }
    unsafe fn removeTableColumn_(&self, tableColumn: NSTableColumn)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTableColumn : tableColumn)
    }
    unsafe fn moveColumn_toColumn_(&self, oldIndex: NSInteger, newIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveColumn : oldIndex, toColumn : newIndex)
    }
    unsafe fn columnWithIdentifier_(&self, identifier: NSString) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnWithIdentifier : identifier)
    }
    unsafe fn tableColumnWithIdentifier_(&self, identifier: NSString) -> NSTableColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableColumnWithIdentifier : identifier)
    }
    unsafe fn tile(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tile)
    }
    unsafe fn sizeToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToFit)
    }
    unsafe fn sizeLastColumnToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeLastColumnToFit)
    }
    unsafe fn scrollRowToVisible_(&self, row: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollRowToVisible : row)
    }
    unsafe fn scrollColumnToVisible_(&self, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, scrollColumnToVisible : column)
    }
    unsafe fn reloadData(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadData)
    }
    unsafe fn noteNumberOfRowsChanged(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, noteNumberOfRowsChanged)
    }
    unsafe fn reloadDataForRowIndexes_columnIndexes_(
        &self,
        rowIndexes: NSIndexSet,
        columnIndexes: NSIndexSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadDataForRowIndexes : rowIndexes, columnIndexes : columnIndexes)
    }
    unsafe fn setIndicatorImage_inTableColumn_(&self, image: NSImage, tableColumn: NSTableColumn)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndicatorImage : image, inTableColumn : tableColumn)
    }
    unsafe fn indicatorImageInTableColumn_(&self, tableColumn: NSTableColumn) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indicatorImageInTableColumn : tableColumn)
    }
    unsafe fn canDragRowsWithIndexes_atPoint_(
        &self,
        rowIndexes: NSIndexSet,
        mouseDownPoint: NSPoint,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canDragRowsWithIndexes : rowIndexes, atPoint : mouseDownPoint)
    }
    unsafe fn dragImageForRowsWithIndexes_tableColumns_event_offset_(
        &self,
        dragRows: NSIndexSet,
        tableColumns: NSArray,
        dragEvent: NSEvent,
        dragImageOffset: NSPointPointer,
    ) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, dragImageForRowsWithIndexes : dragRows, tableColumns : tableColumns, event : dragEvent, offset : dragImageOffset)
    }
    unsafe fn setDraggingSourceOperationMask_forLocal_(&self, mask: NSDragOperation, isLocal: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingSourceOperationMask : mask, forLocal : isLocal)
    }
    unsafe fn setDropRow_dropOperation_(
        &self,
        row: NSInteger,
        dropOperation: NSTableViewDropOperation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDropRow : row, dropOperation : dropOperation)
    }
    unsafe fn selectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectAll : sender)
    }
    unsafe fn deselectAll_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectAll : sender)
    }
    unsafe fn selectColumnIndexes_byExtendingSelection_(&self, indexes: NSIndexSet, extend_: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectColumnIndexes : indexes, byExtendingSelection : extend_)
    }
    unsafe fn selectRowIndexes_byExtendingSelection_(&self, indexes: NSIndexSet, extend_: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectRowIndexes : indexes, byExtendingSelection : extend_)
    }
    unsafe fn deselectColumn_(&self, column: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectColumn : column)
    }
    unsafe fn deselectRow_(&self, row: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deselectRow : row)
    }
    unsafe fn isColumnSelected_(&self, column: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isColumnSelected : column)
    }
    unsafe fn isRowSelected_(&self, row: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isRowSelected : row)
    }
    unsafe fn rectOfColumn_(&self, column: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectOfColumn : column)
    }
    unsafe fn rectOfRow_(&self, row: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectOfRow : row)
    }
    unsafe fn columnIndexesInRect_(&self, rect: NSRect) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnIndexesInRect : rect)
    }
    unsafe fn rowsInRect_(&self, rect: NSRect) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowsInRect : rect)
    }
    unsafe fn columnAtPoint_(&self, point: NSPoint) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnAtPoint : point)
    }
    unsafe fn rowAtPoint_(&self, point: NSPoint) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowAtPoint : point)
    }
    unsafe fn frameOfCellAtColumn_row_(&self, column: NSInteger, row: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameOfCellAtColumn : column, row : row)
    }
    unsafe fn editColumn_row_withEvent_select_(
        &self,
        column: NSInteger,
        row: NSInteger,
        event: NSEvent,
        select: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, editColumn : column, row : row, withEvent : event, select : select)
    }
    unsafe fn drawRow_clipRect_(&self, row: NSInteger, clipRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawRow : row, clipRect : clipRect)
    }
    unsafe fn highlightSelectionInClipRect_(&self, clipRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, highlightSelectionInClipRect : clipRect)
    }
    unsafe fn drawGridInClipRect_(&self, clipRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawGridInClipRect : clipRect)
    }
    unsafe fn drawBackgroundInClipRect_(&self, clipRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBackgroundInClipRect : clipRect)
    }
    unsafe fn viewAtColumn_row_makeIfNecessary_(
        &self,
        column: NSInteger,
        row: NSInteger,
        makeIfNecessary: BOOL,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewAtColumn : column, row : row, makeIfNecessary : makeIfNecessary)
    }
    unsafe fn rowViewAtRow_makeIfNecessary_(
        &self,
        row: NSInteger,
        makeIfNecessary: BOOL,
    ) -> NSTableRowView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowViewAtRow : row, makeIfNecessary : makeIfNecessary)
    }
    unsafe fn rowForView_(&self, view: NSView) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowForView : view)
    }
    unsafe fn columnForView_(&self, view: NSView) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnForView : view)
    }
    unsafe fn makeViewWithIdentifier_owner_(&self, identifier: NSString, owner: id) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, makeViewWithIdentifier : identifier, owner : owner)
    }
    unsafe fn enumerateAvailableRowViewsUsingBlock_(&self, handler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateAvailableRowViewsUsingBlock : handler)
    }
    unsafe fn beginUpdates(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, beginUpdates)
    }
    unsafe fn endUpdates(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, endUpdates)
    }
    unsafe fn insertRowsAtIndexes_withAnimation_(
        &self,
        indexes: NSIndexSet,
        animationOptions: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertRowsAtIndexes : indexes, withAnimation : animationOptions)
    }
    unsafe fn removeRowsAtIndexes_withAnimation_(
        &self,
        indexes: NSIndexSet,
        animationOptions: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRowsAtIndexes : indexes, withAnimation : animationOptions)
    }
    unsafe fn moveRowAtIndex_toIndex_(&self, oldIndex: NSInteger, newIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveRowAtIndex : oldIndex, toIndex : newIndex)
    }
    unsafe fn hideRowsAtIndexes_withAnimation_(
        &self,
        indexes: NSIndexSet,
        rowAnimation: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, hideRowsAtIndexes : indexes, withAnimation : rowAnimation)
    }
    unsafe fn unhideRowsAtIndexes_withAnimation_(
        &self,
        indexes: NSIndexSet,
        rowAnimation: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, unhideRowsAtIndexes : indexes, withAnimation : rowAnimation)
    }
    unsafe fn registerNib_forIdentifier_(&self, nib: NSNib, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, registerNib : nib, forIdentifier : identifier)
    }
    unsafe fn didAddRowView_forRow_(&self, rowView: NSTableRowView, row: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didAddRowView : rowView, forRow : row)
    }
    unsafe fn didRemoveRowView_forRow_(&self, rowView: NSTableRowView, row: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, didRemoveRowView : rowView, forRow : row)
    }
    unsafe fn dataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataSource)
    }
    unsafe fn setDataSource_(&self, dataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataSource : dataSource)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn headerView(&self) -> NSTableHeaderView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headerView)
    }
    unsafe fn setHeaderView_(&self, headerView: NSTableHeaderView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeaderView : headerView)
    }
    unsafe fn cornerView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cornerView)
    }
    unsafe fn setCornerView_(&self, cornerView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCornerView : cornerView)
    }
    unsafe fn allowsColumnReordering(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsColumnReordering)
    }
    unsafe fn setAllowsColumnReordering_(&self, allowsColumnReordering: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsColumnReordering : allowsColumnReordering)
    }
    unsafe fn allowsColumnResizing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsColumnResizing)
    }
    unsafe fn setAllowsColumnResizing_(&self, allowsColumnResizing: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsColumnResizing : allowsColumnResizing)
    }
    unsafe fn columnAutoresizingStyle(&self) -> NSTableViewColumnAutoresizingStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, columnAutoresizingStyle)
    }
    unsafe fn setColumnAutoresizingStyle_(
        &self,
        columnAutoresizingStyle: NSTableViewColumnAutoresizingStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColumnAutoresizingStyle : columnAutoresizingStyle)
    }
    unsafe fn gridStyleMask(&self) -> NSTableViewGridLineStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, gridStyleMask)
    }
    unsafe fn setGridStyleMask_(&self, gridStyleMask: NSTableViewGridLineStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGridStyleMask : gridStyleMask)
    }
    unsafe fn intercellSpacing(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, intercellSpacing)
    }
    unsafe fn setIntercellSpacing_(&self, intercellSpacing: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIntercellSpacing : intercellSpacing)
    }
    unsafe fn usesAlternatingRowBackgroundColors(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesAlternatingRowBackgroundColors)
    }
    unsafe fn setUsesAlternatingRowBackgroundColors_(
        &self,
        usesAlternatingRowBackgroundColors: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesAlternatingRowBackgroundColors : usesAlternatingRowBackgroundColors)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn gridColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, gridColor)
    }
    unsafe fn setGridColor_(&self, gridColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGridColor : gridColor)
    }
    unsafe fn rowSizeStyle(&self) -> NSTableViewRowSizeStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowSizeStyle)
    }
    unsafe fn setRowSizeStyle_(&self, rowSizeStyle: NSTableViewRowSizeStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowSizeStyle : rowSizeStyle)
    }
    unsafe fn effectiveRowSizeStyle(&self) -> NSTableViewRowSizeStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveRowSizeStyle)
    }
    unsafe fn rowHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowHeight)
    }
    unsafe fn setRowHeight_(&self, rowHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowHeight : rowHeight)
    }
    unsafe fn tableColumns(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tableColumns)
    }
    unsafe fn numberOfColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColumns)
    }
    unsafe fn numberOfRows(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfRows)
    }
    unsafe fn editedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, editedColumn)
    }
    unsafe fn editedRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, editedRow)
    }
    unsafe fn clickedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickedColumn)
    }
    unsafe fn clickedRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickedRow)
    }
    unsafe fn doubleAction(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleAction)
    }
    unsafe fn setDoubleAction_(&self, doubleAction: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleAction : doubleAction)
    }
    unsafe fn sortDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sortDescriptors)
    }
    unsafe fn setSortDescriptors_(&self, sortDescriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSortDescriptors : sortDescriptors)
    }
    unsafe fn highlightedTableColumn(&self) -> NSTableColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, highlightedTableColumn)
    }
    unsafe fn setHighlightedTableColumn_(&self, highlightedTableColumn: NSTableColumn)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHighlightedTableColumn : highlightedTableColumn)
    }
    unsafe fn verticalMotionCanBeginDrag(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalMotionCanBeginDrag)
    }
    unsafe fn setVerticalMotionCanBeginDrag_(&self, verticalMotionCanBeginDrag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalMotionCanBeginDrag : verticalMotionCanBeginDrag)
    }
    unsafe fn allowsMultipleSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsMultipleSelection)
    }
    unsafe fn setAllowsMultipleSelection_(&self, allowsMultipleSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsMultipleSelection : allowsMultipleSelection)
    }
    unsafe fn allowsEmptySelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsEmptySelection)
    }
    unsafe fn setAllowsEmptySelection_(&self, allowsEmptySelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsEmptySelection : allowsEmptySelection)
    }
    unsafe fn allowsColumnSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsColumnSelection)
    }
    unsafe fn setAllowsColumnSelection_(&self, allowsColumnSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsColumnSelection : allowsColumnSelection)
    }
    unsafe fn selectedColumnIndexes(&self) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedColumnIndexes)
    }
    unsafe fn selectedRowIndexes(&self) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRowIndexes)
    }
    unsafe fn selectedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedColumn)
    }
    unsafe fn selectedRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRow)
    }
    unsafe fn numberOfSelectedColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfSelectedColumns)
    }
    unsafe fn numberOfSelectedRows(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfSelectedRows)
    }
    unsafe fn allowsTypeSelect(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsTypeSelect)
    }
    unsafe fn setAllowsTypeSelect_(&self, allowsTypeSelect: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsTypeSelect : allowsTypeSelect)
    }
    unsafe fn style(&self) -> NSTableViewStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, style)
    }
    unsafe fn setStyle_(&self, style: NSTableViewStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStyle : style)
    }
    unsafe fn effectiveStyle(&self) -> NSTableViewStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectiveStyle)
    }
    unsafe fn selectionHighlightStyle(&self) -> NSTableViewSelectionHighlightStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionHighlightStyle)
    }
    unsafe fn setSelectionHighlightStyle_(
        &self,
        selectionHighlightStyle: NSTableViewSelectionHighlightStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionHighlightStyle : selectionHighlightStyle)
    }
    unsafe fn draggingDestinationFeedbackStyle(&self) -> NSTableViewDraggingDestinationFeedbackStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingDestinationFeedbackStyle)
    }
    unsafe fn setDraggingDestinationFeedbackStyle_(
        &self,
        draggingDestinationFeedbackStyle: NSTableViewDraggingDestinationFeedbackStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingDestinationFeedbackStyle : draggingDestinationFeedbackStyle)
    }
    unsafe fn autosaveName(&self) -> NSTableViewAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosaveName)
    }
    unsafe fn setAutosaveName_(&self, autosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosaveName : autosaveName)
    }
    unsafe fn autosaveTableColumns(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosaveTableColumns)
    }
    unsafe fn setAutosaveTableColumns_(&self, autosaveTableColumns: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosaveTableColumns : autosaveTableColumns)
    }
    unsafe fn floatsGroupRows(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, floatsGroupRows)
    }
    unsafe fn setFloatsGroupRows_(&self, floatsGroupRows: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFloatsGroupRows : floatsGroupRows)
    }
    unsafe fn rowActionsVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowActionsVisible)
    }
    unsafe fn setRowActionsVisible_(&self, rowActionsVisible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowActionsVisible : rowActionsVisible)
    }
    unsafe fn hiddenRowIndexes(&self) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hiddenRowIndexes)
    }
    unsafe fn registeredNibsByIdentifier(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, registeredNibsByIdentifier)
    }
    unsafe fn usesStaticContents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesStaticContents)
    }
    unsafe fn setUsesStaticContents_(&self, usesStaticContents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesStaticContents : usesStaticContents)
    }
    unsafe fn userInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInterfaceLayoutDirection)
    }
    unsafe fn setUserInterfaceLayoutDirection_(
        &self,
        userInterfaceLayoutDirection: NSUserInterfaceLayoutDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserInterfaceLayoutDirection : userInterfaceLayoutDirection)
    }
    unsafe fn usesAutomaticRowHeights(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesAutomaticRowHeights)
    }
    unsafe fn setUsesAutomaticRowHeights_(&self, usesAutomaticRowHeights: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesAutomaticRowHeights : usesAutomaticRowHeights)
    }
}
pub type NSTableViewAnimationOptions = NSUInteger;
pub trait PNSTableViewDelegate: Sized + std::ops::Deref {
    unsafe fn tableView_viewForTableColumn_row_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, viewForTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_rowViewForRow_(
        &self,
        tableView: NSTableView,
        row: NSInteger,
    ) -> NSTableRowView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, rowViewForRow : row)
    }
    unsafe fn tableView_didAddRowView_forRow_(
        &self,
        tableView: NSTableView,
        rowView: NSTableRowView,
        row: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, didAddRowView : rowView, forRow : row)
    }
    unsafe fn tableView_didRemoveRowView_forRow_(
        &self,
        tableView: NSTableView,
        rowView: NSTableRowView,
        row: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, didRemoveRowView : rowView, forRow : row)
    }
    unsafe fn tableView_willDisplayCell_forTableColumn_row_(
        &self,
        tableView: NSTableView,
        cell: id,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, willDisplayCell : cell, forTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_shouldEditTableColumn_row_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldEditTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_(
        &self,
        tableView: NSTableView,
        cell: NSCell,
        rect: NSRectPointer,
        tableColumn: NSTableColumn,
        row: NSInteger,
        mouseLocation: NSPoint,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, toolTipForCell : cell, rect : rect, tableColumn : tableColumn, row : row, mouseLocation : mouseLocation)
    }
    unsafe fn tableView_shouldShowCellExpansionForTableColumn_row_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldShowCellExpansionForTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_shouldTrackCell_forTableColumn_row_(
        &self,
        tableView: NSTableView,
        cell: NSCell,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldTrackCell : cell, forTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_dataCellForTableColumn_row_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, dataCellForTableColumn : tableColumn, row : row)
    }
    unsafe fn selectionShouldChangeInTableView_(&self, tableView: NSTableView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectionShouldChangeInTableView : tableView)
    }
    unsafe fn tableView_shouldSelectRow_(&self, tableView: NSTableView, row: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldSelectRow : row)
    }
    unsafe fn tableView_selectionIndexesForProposedSelection_(
        &self,
        tableView: NSTableView,
        proposedSelectionIndexes: NSIndexSet,
    ) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, selectionIndexesForProposedSelection : proposedSelectionIndexes)
    }
    unsafe fn tableView_shouldSelectTableColumn_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldSelectTableColumn : tableColumn)
    }
    unsafe fn tableView_mouseDownInHeaderOfTableColumn_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, mouseDownInHeaderOfTableColumn : tableColumn)
    }
    unsafe fn tableView_didClickTableColumn_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, didClickTableColumn : tableColumn)
    }
    unsafe fn tableView_didDragTableColumn_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, didDragTableColumn : tableColumn)
    }
    unsafe fn tableView_heightOfRow_(&self, tableView: NSTableView, row: NSInteger) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, heightOfRow : row)
    }
    unsafe fn tableView_typeSelectStringForTableColumn_row_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, typeSelectStringForTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_nextTypeSelectMatchFromRow_toRow_forString_(
        &self,
        tableView: NSTableView,
        startRow: NSInteger,
        endRow: NSInteger,
        searchString: NSString,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, nextTypeSelectMatchFromRow : startRow, toRow : endRow, forString : searchString)
    }
    unsafe fn tableView_shouldTypeSelectForEvent_withCurrentSearchString_(
        &self,
        tableView: NSTableView,
        event: NSEvent,
        searchString: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldTypeSelectForEvent : event, withCurrentSearchString : searchString)
    }
    unsafe fn tableView_isGroupRow_(&self, tableView: NSTableView, row: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, isGroupRow : row)
    }
    unsafe fn tableView_sizeToFitWidthOfColumn_(
        &self,
        tableView: NSTableView,
        column: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, sizeToFitWidthOfColumn : column)
    }
    unsafe fn tableView_shouldReorderColumn_toColumn_(
        &self,
        tableView: NSTableView,
        columnIndex: NSInteger,
        newColumnIndex: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, shouldReorderColumn : columnIndex, toColumn : newColumnIndex)
    }
    unsafe fn tableView_rowActionsForRow_edge_(
        &self,
        tableView: NSTableView,
        row: NSInteger,
        edge: NSTableRowActionEdge,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, rowActionsForRow : row, edge : edge)
    }
    unsafe fn tableView_userCanChangeVisibilityOfTableColumn_(
        &self,
        tableView: NSTableView,
        column: NSTableColumn,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, userCanChangeVisibilityOfTableColumn : column)
    }
    unsafe fn tableView_userDidChangeVisibilityOfTableColumns_(
        &self,
        tableView: NSTableView,
        columns: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, userDidChangeVisibilityOfTableColumns : columns)
    }
    unsafe fn tableViewSelectionDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableViewSelectionDidChange : notification)
    }
    unsafe fn tableViewColumnDidMove_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableViewColumnDidMove : notification)
    }
    unsafe fn tableViewColumnDidResize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableViewColumnDidResize : notification)
    }
    unsafe fn tableViewSelectionIsChanging_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableViewSelectionIsChanging : notification)
    }
}
pub trait PNSTableViewDataSource: Sized + std::ops::Deref {
    unsafe fn numberOfRowsInTableView_(&self, tableView: NSTableView) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfRowsInTableView : tableView)
    }
    unsafe fn tableView_objectValueForTableColumn_row_(
        &self,
        tableView: NSTableView,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, objectValueForTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_setObjectValue_forTableColumn_row_(
        &self,
        tableView: NSTableView,
        object: id,
        tableColumn: NSTableColumn,
        row: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, setObjectValue : object, forTableColumn : tableColumn, row : row)
    }
    unsafe fn tableView_sortDescriptorsDidChange_(
        &self,
        tableView: NSTableView,
        oldDescriptors: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, sortDescriptorsDidChange : oldDescriptors)
    }
    unsafe fn tableView_pasteboardWriterForRow_(
        &self,
        tableView: NSTableView,
        row: NSInteger,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, pasteboardWriterForRow : row)
    }
    unsafe fn tableView_draggingSession_willBeginAtPoint_forRowIndexes_(
        &self,
        tableView: NSTableView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        rowIndexes: NSIndexSet,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, draggingSession : session, willBeginAtPoint : screenPoint, forRowIndexes : rowIndexes)
    }
    unsafe fn tableView_draggingSession_endedAtPoint_operation_(
        &self,
        tableView: NSTableView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        operation: NSDragOperation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, draggingSession : session, endedAtPoint : screenPoint, operation : operation)
    }
    unsafe fn tableView_updateDraggingItemsForDrag_(
        &self,
        tableView: NSTableView,
        draggingInfo: *mut u64,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, updateDraggingItemsForDrag : draggingInfo)
    }
    unsafe fn tableView_writeRowsWithIndexes_toPasteboard_(
        &self,
        tableView: NSTableView,
        rowIndexes: NSIndexSet,
        pboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, writeRowsWithIndexes : rowIndexes, toPasteboard : pboard)
    }
    unsafe fn tableView_validateDrop_proposedRow_proposedDropOperation_(
        &self,
        tableView: NSTableView,
        info: *mut u64,
        row: NSInteger,
        dropOperation: NSTableViewDropOperation,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, validateDrop : info, proposedRow : row, proposedDropOperation : dropOperation)
    }
    unsafe fn tableView_acceptDrop_row_dropOperation_(
        &self,
        tableView: NSTableView,
        info: *mut u64,
        row: NSInteger,
        dropOperation: NSTableViewDropOperation,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, acceptDrop : info, row : row, dropOperation : dropOperation)
    }
    unsafe fn tableView_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_(
        &self,
        tableView: NSTableView,
        dropDestination: NSURL,
        indexSet: NSIndexSet,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tableView : tableView, namesOfPromisedFilesDroppedAtDestination : dropDestination, forDraggedRowsWithIndexes : indexSet)
    }
}
impl NSTableView_NSDeprecated for NSTableView {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableCellView(pub id);
impl std::ops::Deref for NSTableCellView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableCellView {}
impl NSTableCellView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableCellView").unwrap(), alloc) })
    }
}
impl INSView for NSTableCellView {}
impl PNSAnimatablePropertyContainer for NSTableCellView {}
impl PNSUserInterfaceItemIdentification for NSTableCellView {}
impl PNSDraggingDestination for NSTableCellView {}
impl PNSAppearanceCustomization for NSTableCellView {}
impl PNSAccessibilityElement for NSTableCellView {}
impl PNSAccessibility for NSTableCellView {}
impl std::convert::TryFrom<NSView> for NSTableCellView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSTableCellView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableCellView").unwrap()) };
        if is_kind_of {
            Ok(NSTableCellView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSTableCellView")
        }
    }
}
impl INSResponder for NSTableCellView {}
impl PNSCoding for NSTableCellView {}
impl INSObject for NSTableCellView {}
impl PNSObject for NSTableCellView {}
impl INSTableCellView for NSTableCellView {}
pub trait INSTableCellView: Sized + std::ops::Deref {
    unsafe fn objectValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectValue)
    }
    unsafe fn setObjectValue_(&self, objectValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObjectValue : objectValue)
    }
    unsafe fn textField(&self) -> NSTextField
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textField)
    }
    unsafe fn setTextField_(&self, textField: NSTextField)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextField : textField)
    }
    unsafe fn imageView(&self) -> NSImageView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageView)
    }
    unsafe fn setImageView_(&self, imageView: NSImageView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageView : imageView)
    }
    unsafe fn backgroundStyle(&self) -> NSBackgroundStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundStyle)
    }
    unsafe fn setBackgroundStyle_(&self, backgroundStyle: NSBackgroundStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundStyle : backgroundStyle)
    }
    unsafe fn rowSizeStyle(&self) -> NSTableViewRowSizeStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowSizeStyle)
    }
    unsafe fn setRowSizeStyle_(&self, rowSizeStyle: NSTableViewRowSizeStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowSizeStyle : rowSizeStyle)
    }
    unsafe fn draggingImageComponents(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingImageComponents)
    }
}
pub type NSTableColumnResizingOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableColumn(pub id);
impl std::ops::Deref for NSTableColumn {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableColumn {}
impl NSTableColumn {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableColumn").unwrap(), alloc) })
    }
}
impl PNSCoding for NSTableColumn {}
impl PNSUserInterfaceItemIdentification for NSTableColumn {}
impl INSObject for NSTableColumn {}
impl PNSObject for NSTableColumn {}
impl std::convert::TryFrom<NSObject> for NSTableColumn {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTableColumn, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableColumn").unwrap()) };
        if is_kind_of {
            Ok(NSTableColumn(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTableColumn")
        }
    }
}
impl INSTableColumn for NSTableColumn {}
pub trait INSTableColumn: Sized + std::ops::Deref {
    unsafe fn initWithIdentifier_(&self, identifier: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn sizeToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToFit)
    }
    unsafe fn identifier(&self) -> NSUserInterfaceItemIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
    unsafe fn tableView(&self) -> NSTableView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tableView)
    }
    unsafe fn setTableView_(&self, tableView: NSTableView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTableView : tableView)
    }
    unsafe fn width(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, width)
    }
    unsafe fn setWidth_(&self, width: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : width)
    }
    unsafe fn minWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minWidth)
    }
    unsafe fn setMinWidth_(&self, minWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinWidth : minWidth)
    }
    unsafe fn maxWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxWidth)
    }
    unsafe fn setMaxWidth_(&self, maxWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxWidth : maxWidth)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn headerCell(&self) -> NSTableHeaderCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headerCell)
    }
    unsafe fn setHeaderCell_(&self, headerCell: NSTableHeaderCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeaderCell : headerCell)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn sortDescriptorPrototype(&self) -> NSSortDescriptor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sortDescriptorPrototype)
    }
    unsafe fn setSortDescriptorPrototype_(&self, sortDescriptorPrototype: NSSortDescriptor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSortDescriptorPrototype : sortDescriptorPrototype)
    }
    unsafe fn resizingMask(&self) -> NSTableColumnResizingOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resizingMask)
    }
    unsafe fn setResizingMask_(&self, resizingMask: NSTableColumnResizingOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResizingMask : resizingMask)
    }
    unsafe fn headerToolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, headerToolTip)
    }
    unsafe fn setHeaderToolTip_(&self, headerToolTip: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHeaderToolTip : headerToolTip)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
}
impl NSTableColumn_NSDeprecated for NSTableColumn {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableHeaderCell(pub id);
impl std::ops::Deref for NSTableHeaderCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableHeaderCell {}
impl NSTableHeaderCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableHeaderCell").unwrap(), alloc) })
    }
}
impl INSTextFieldCell for NSTableHeaderCell {}
impl std::convert::TryFrom<NSTextFieldCell> for NSTableHeaderCell {
    type Error = &'static str;
    fn try_from(parent: NSTextFieldCell) -> Result<NSTableHeaderCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableHeaderCell").unwrap()) };
        if is_kind_of {
            Ok(NSTableHeaderCell(parent.0))
        } else {
            Err("This NSTextFieldCell cannot be downcasted to NSTableHeaderCell")
        }
    }
}
impl INSActionCell for NSTableHeaderCell {}
impl INSCell for NSTableHeaderCell {}
impl PNSCopying for NSTableHeaderCell {}
impl PNSCoding for NSTableHeaderCell {}
impl PNSUserInterfaceItemIdentification for NSTableHeaderCell {}
impl PNSAccessibilityElement for NSTableHeaderCell {}
impl PNSAccessibility for NSTableHeaderCell {}
impl INSObject for NSTableHeaderCell {}
impl PNSObject for NSTableHeaderCell {}
impl INSTableHeaderCell for NSTableHeaderCell {}
pub trait INSTableHeaderCell: Sized + std::ops::Deref {
    unsafe fn drawSortIndicatorWithFrame_inView_ascending_priority_(
        &self,
        cellFrame: NSRect,
        controlView: NSView,
        ascending: BOOL,
        priority: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawSortIndicatorWithFrame : cellFrame, inView : controlView, ascending : ascending, priority : priority)
    }
    unsafe fn sortIndicatorRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sortIndicatorRectForBounds : rect)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableHeaderView(pub id);
impl std::ops::Deref for NSTableHeaderView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableHeaderView {}
impl NSTableHeaderView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableHeaderView").unwrap(), alloc) })
    }
}
impl PNSViewToolTipOwner for NSTableHeaderView {}
impl INSView for NSTableHeaderView {}
impl PNSAnimatablePropertyContainer for NSTableHeaderView {}
impl PNSUserInterfaceItemIdentification for NSTableHeaderView {}
impl PNSDraggingDestination for NSTableHeaderView {}
impl PNSAppearanceCustomization for NSTableHeaderView {}
impl PNSAccessibilityElement for NSTableHeaderView {}
impl PNSAccessibility for NSTableHeaderView {}
impl std::convert::TryFrom<NSView> for NSTableHeaderView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSTableHeaderView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableHeaderView").unwrap()) };
        if is_kind_of {
            Ok(NSTableHeaderView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSTableHeaderView")
        }
    }
}
impl INSResponder for NSTableHeaderView {}
impl PNSCoding for NSTableHeaderView {}
impl INSObject for NSTableHeaderView {}
impl PNSObject for NSTableHeaderView {}
impl INSTableHeaderView for NSTableHeaderView {}
pub trait INSTableHeaderView: Sized + std::ops::Deref {
    unsafe fn headerRectOfColumn_(&self, column: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, headerRectOfColumn : column)
    }
    unsafe fn columnAtPoint_(&self, point: NSPoint) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, columnAtPoint : point)
    }
    unsafe fn tableView(&self) -> NSTableView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tableView)
    }
    unsafe fn setTableView_(&self, tableView: NSTableView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTableView : tableView)
    }
    unsafe fn draggedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggedColumn)
    }
    unsafe fn draggedDistance(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggedDistance)
    }
    unsafe fn resizedColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resizedColumn)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableRowView(pub id);
impl std::ops::Deref for NSTableRowView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableRowView {}
impl NSTableRowView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableRowView").unwrap(), alloc) })
    }
}
impl PNSAccessibilityRow for NSTableRowView {}
impl INSView for NSTableRowView {}
impl PNSAnimatablePropertyContainer for NSTableRowView {}
impl PNSUserInterfaceItemIdentification for NSTableRowView {}
impl PNSDraggingDestination for NSTableRowView {}
impl PNSAppearanceCustomization for NSTableRowView {}
impl PNSAccessibilityElement for NSTableRowView {}
impl PNSAccessibility for NSTableRowView {}
impl std::convert::TryFrom<NSView> for NSTableRowView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSTableRowView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableRowView").unwrap()) };
        if is_kind_of {
            Ok(NSTableRowView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSTableRowView")
        }
    }
}
impl INSResponder for NSTableRowView {}
impl PNSCoding for NSTableRowView {}
impl INSObject for NSTableRowView {}
impl PNSObject for NSTableRowView {}
impl INSTableRowView for NSTableRowView {}
pub trait INSTableRowView: Sized + std::ops::Deref {
    unsafe fn drawBackgroundInRect_(&self, dirtyRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBackgroundInRect : dirtyRect)
    }
    unsafe fn drawSelectionInRect_(&self, dirtyRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawSelectionInRect : dirtyRect)
    }
    unsafe fn drawSeparatorInRect_(&self, dirtyRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawSeparatorInRect : dirtyRect)
    }
    unsafe fn drawDraggingDestinationFeedbackInRect_(&self, dirtyRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawDraggingDestinationFeedbackInRect : dirtyRect)
    }
    unsafe fn viewAtColumn_(&self, column: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewAtColumn : column)
    }
    unsafe fn selectionHighlightStyle(&self) -> NSTableViewSelectionHighlightStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionHighlightStyle)
    }
    unsafe fn setSelectionHighlightStyle_(
        &self,
        selectionHighlightStyle: NSTableViewSelectionHighlightStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionHighlightStyle : selectionHighlightStyle)
    }
    unsafe fn isEmphasized(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEmphasized)
    }
    unsafe fn setEmphasized_(&self, emphasized: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEmphasized : emphasized)
    }
    unsafe fn isGroupRowStyle(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isGroupRowStyle)
    }
    unsafe fn setGroupRowStyle_(&self, groupRowStyle: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setGroupRowStyle : groupRowStyle)
    }
    unsafe fn isSelected(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isSelected)
    }
    unsafe fn setSelected_(&self, selected: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelected : selected)
    }
    unsafe fn isPreviousRowSelected(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isPreviousRowSelected)
    }
    unsafe fn setPreviousRowSelected_(&self, previousRowSelected: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreviousRowSelected : previousRowSelected)
    }
    unsafe fn isNextRowSelected(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isNextRowSelected)
    }
    unsafe fn setNextRowSelected_(&self, nextRowSelected: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNextRowSelected : nextRowSelected)
    }
    unsafe fn isFloating(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFloating)
    }
    unsafe fn setFloating_(&self, floating: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFloating : floating)
    }
    unsafe fn isTargetForDropOperation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTargetForDropOperation)
    }
    unsafe fn setTargetForDropOperation_(&self, targetForDropOperation: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTargetForDropOperation : targetForDropOperation)
    }
    unsafe fn draggingDestinationFeedbackStyle(&self) -> NSTableViewDraggingDestinationFeedbackStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, draggingDestinationFeedbackStyle)
    }
    unsafe fn setDraggingDestinationFeedbackStyle_(
        &self,
        draggingDestinationFeedbackStyle: NSTableViewDraggingDestinationFeedbackStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingDestinationFeedbackStyle : draggingDestinationFeedbackStyle)
    }
    unsafe fn indentationForDropOperation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indentationForDropOperation)
    }
    unsafe fn setIndentationForDropOperation_(&self, indentationForDropOperation: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndentationForDropOperation : indentationForDropOperation)
    }
    unsafe fn interiorBackgroundStyle(&self) -> NSBackgroundStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interiorBackgroundStyle)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn numberOfColumns(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColumns)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableViewDiffableDataSource(pub id);
impl std::ops::Deref for NSTableViewDiffableDataSource {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableViewDiffableDataSource {}
impl NSTableViewDiffableDataSource {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableViewDiffableDataSource").unwrap(), alloc) })
    }
}
impl PNSTableViewDataSource for NSTableViewDiffableDataSource {}
impl INSObject for NSTableViewDiffableDataSource {}
impl PNSObject for NSTableViewDiffableDataSource {}
impl std::convert::TryFrom<NSObject> for NSTableViewDiffableDataSource {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTableViewDiffableDataSource, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableViewDiffableDataSource").unwrap())
        };
        if is_kind_of {
            Ok(NSTableViewDiffableDataSource(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTableViewDiffableDataSource")
        }
    }
}
impl<SectionIdentifierType: 'static, ItemIdentifierType: 'static>
    INSTableViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType>
    for NSTableViewDiffableDataSource
{
}
pub trait INSTableViewDiffableDataSource<
    SectionIdentifierType: 'static,
    ItemIdentifierType: 'static,
>: Sized + std::ops::Deref
{
    unsafe fn initWithTableView_cellProvider_(
        &self,
        tableView: NSTableView,
        cellProvider: NSTableViewDiffableDataSourceCellProvider,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTableView : tableView, cellProvider : cellProvider)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn snapshot(&self) -> NSDiffableDataSourceSnapshot
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, snapshot)
    }
    unsafe fn applySnapshot_animatingDifferences_(
        &self,
        snapshot: NSDiffableDataSourceSnapshot,
        animatingDifferences: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applySnapshot : snapshot, animatingDifferences : animatingDifferences)
    }
    unsafe fn applySnapshot_animatingDifferences_completion_(
        &self,
        snapshot: NSDiffableDataSourceSnapshot,
        animatingDifferences: BOOL,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, applySnapshot : snapshot, animatingDifferences : animatingDifferences, completion : completion)
    }
    unsafe fn itemIdentifierForRow_(&self, row: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemIdentifierForRow : row)
    }
    unsafe fn rowForItemIdentifier_(&self, identifier: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowForItemIdentifier : identifier)
    }
    unsafe fn sectionIdentifierForRow_(&self, row: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sectionIdentifierForRow : row)
    }
    unsafe fn rowForSectionIdentifier_(&self, identifier: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowForSectionIdentifier : identifier)
    }
    unsafe fn rowViewProvider(&self) -> NSTableViewDiffableDataSourceRowProvider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowViewProvider)
    }
    unsafe fn setRowViewProvider_(&self, rowViewProvider: NSTableViewDiffableDataSourceRowProvider)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowViewProvider : rowViewProvider)
    }
    unsafe fn sectionHeaderViewProvider(
        &self,
    ) -> NSTableViewDiffableDataSourceSectionHeaderViewProvider
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sectionHeaderViewProvider)
    }
    unsafe fn setSectionHeaderViewProvider_(
        &self,
        sectionHeaderViewProvider: NSTableViewDiffableDataSourceSectionHeaderViewProvider,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSectionHeaderViewProvider : sectionHeaderViewProvider)
    }
    unsafe fn defaultRowAnimation(&self) -> NSTableViewAnimationOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaultRowAnimation)
    }
    unsafe fn setDefaultRowAnimation_(&self, defaultRowAnimation: NSTableViewAnimationOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDefaultRowAnimation : defaultRowAnimation)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableViewDiffableDataSource").unwrap(), new)
    }
}
pub type NSTableViewRowActionStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTableViewRowAction(pub id);
impl std::ops::Deref for NSTableViewRowAction {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTableViewRowAction {}
impl NSTableViewRowAction {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableViewRowAction").unwrap(), alloc) })
    }
}
impl PNSCopying for NSTableViewRowAction {}
impl INSObject for NSTableViewRowAction {}
impl PNSObject for NSTableViewRowAction {}
impl std::convert::TryFrom<NSObject> for NSTableViewRowAction {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTableViewRowAction, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTableViewRowAction").unwrap()) };
        if is_kind_of {
            Ok(NSTableViewRowAction(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTableViewRowAction")
        }
    }
}
impl INSTableViewRowAction for NSTableViewRowAction {}
pub trait INSTableViewRowAction: Sized + std::ops::Deref {
    unsafe fn style(&self) -> NSTableViewRowActionStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, style)
    }
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn rowActionWithStyle_title_handler_(
        style: NSTableViewRowActionStyle,
        title: NSString,
        handler: *mut ::std::os::raw::c_void,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTableViewRowAction").unwrap(), rowActionWithStyle : style, title : title, handler : handler)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOutlineView(pub id);
impl std::ops::Deref for NSOutlineView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOutlineView {}
impl NSOutlineView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOutlineView").unwrap(), alloc) })
    }
}
impl PNSAccessibilityOutline for NSOutlineView {}
impl INSTableView for NSOutlineView {}
impl PNSUserInterfaceValidations for NSOutlineView {}
impl PNSTextViewDelegate for NSOutlineView {}
impl PNSDraggingSource for NSOutlineView {}
impl PNSAccessibilityTable for NSOutlineView {}
impl From<NSOutlineView> for NSTableView {
    fn from(child: NSOutlineView) -> NSTableView {
        NSTableView(child.0)
    }
}
impl std::convert::TryFrom<NSTableView> for NSOutlineView {
    type Error = &'static str;
    fn try_from(parent: NSTableView) -> Result<NSOutlineView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOutlineView").unwrap()) };
        if is_kind_of {
            Ok(NSOutlineView(parent.0))
        } else {
            Err("This NSTableView cannot be downcasted to NSOutlineView")
        }
    }
}
impl INSControl for NSOutlineView {}
impl INSView for NSOutlineView {}
impl PNSAnimatablePropertyContainer for NSOutlineView {}
impl PNSUserInterfaceItemIdentification for NSOutlineView {}
impl PNSDraggingDestination for NSOutlineView {}
impl PNSAppearanceCustomization for NSOutlineView {}
impl PNSAccessibilityElement for NSOutlineView {}
impl PNSAccessibility for NSOutlineView {}
impl INSResponder for NSOutlineView {}
impl PNSCoding for NSOutlineView {}
impl INSObject for NSOutlineView {}
impl PNSObject for NSOutlineView {}
impl INSOutlineView for NSOutlineView {}
pub trait INSOutlineView: Sized + std::ops::Deref {
    unsafe fn isExpandable_(&self, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isExpandable : item)
    }
    unsafe fn numberOfChildrenOfItem_(&self, item: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, numberOfChildrenOfItem : item)
    }
    unsafe fn child_ofItem_(&self, index: NSInteger, item: id) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, child : index, ofItem : item)
    }
    unsafe fn expandItem_expandChildren_(&self, item: id, expandChildren: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, expandItem : item, expandChildren : expandChildren)
    }
    unsafe fn expandItem_(&self, item: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, expandItem : item)
    }
    unsafe fn collapseItem_collapseChildren_(&self, item: id, collapseChildren: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collapseItem : item, collapseChildren : collapseChildren)
    }
    unsafe fn collapseItem_(&self, item: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, collapseItem : item)
    }
    unsafe fn reloadItem_reloadChildren_(&self, item: id, reloadChildren: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadItem : item, reloadChildren : reloadChildren)
    }
    unsafe fn reloadItem_(&self, item: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, reloadItem : item)
    }
    unsafe fn parentForItem_(&self, item: id) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, parentForItem : item)
    }
    unsafe fn childIndexForItem_(&self, item: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, childIndexForItem : item)
    }
    unsafe fn itemAtRow_(&self, row: NSInteger) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemAtRow : row)
    }
    unsafe fn rowForItem_(&self, item: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowForItem : item)
    }
    unsafe fn levelForItem_(&self, item: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, levelForItem : item)
    }
    unsafe fn levelForRow_(&self, row: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, levelForRow : row)
    }
    unsafe fn isItemExpanded_(&self, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isItemExpanded : item)
    }
    unsafe fn frameOfOutlineCellAtRow_(&self, row: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameOfOutlineCellAtRow : row)
    }
    unsafe fn setDropItem_dropChildIndex_(&self, item: id, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDropItem : item, dropChildIndex : index)
    }
    unsafe fn shouldCollapseAutoExpandedItemsForDeposited_(&self, deposited: BOOL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, shouldCollapseAutoExpandedItemsForDeposited : deposited)
    }
    unsafe fn insertItemsAtIndexes_inParent_withAnimation_(
        &self,
        indexes: NSIndexSet,
        parent: id,
        animationOptions: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertItemsAtIndexes : indexes, inParent : parent, withAnimation : animationOptions)
    }
    unsafe fn removeItemsAtIndexes_inParent_withAnimation_(
        &self,
        indexes: NSIndexSet,
        parent: id,
        animationOptions: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeItemsAtIndexes : indexes, inParent : parent, withAnimation : animationOptions)
    }
    unsafe fn moveItemAtIndex_inParent_toIndex_inParent_(
        &self,
        fromIndex: NSInteger,
        oldParent: id,
        toIndex: NSInteger,
        newParent: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveItemAtIndex : fromIndex, inParent : oldParent, toIndex : toIndex, inParent : newParent)
    }
    unsafe fn insertRowsAtIndexes_withAnimation_(
        &self,
        indexes: NSIndexSet,
        animationOptions: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertRowsAtIndexes : indexes, withAnimation : animationOptions)
    }
    unsafe fn removeRowsAtIndexes_withAnimation_(
        &self,
        indexes: NSIndexSet,
        animationOptions: NSTableViewAnimationOptions,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRowsAtIndexes : indexes, withAnimation : animationOptions)
    }
    unsafe fn moveRowAtIndex_toIndex_(&self, oldIndex: NSInteger, newIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveRowAtIndex : oldIndex, toIndex : newIndex)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn dataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dataSource)
    }
    unsafe fn setDataSource_(&self, dataSource: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDataSource : dataSource)
    }
    unsafe fn outlineTableColumn(&self) -> NSTableColumn
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, outlineTableColumn)
    }
    unsafe fn setOutlineTableColumn_(&self, outlineTableColumn: NSTableColumn)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOutlineTableColumn : outlineTableColumn)
    }
    unsafe fn indentationPerLevel(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indentationPerLevel)
    }
    unsafe fn setIndentationPerLevel_(&self, indentationPerLevel: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndentationPerLevel : indentationPerLevel)
    }
    unsafe fn indentationMarkerFollowsCell(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indentationMarkerFollowsCell)
    }
    unsafe fn setIndentationMarkerFollowsCell_(&self, indentationMarkerFollowsCell: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndentationMarkerFollowsCell : indentationMarkerFollowsCell)
    }
    unsafe fn autoresizesOutlineColumn(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autoresizesOutlineColumn)
    }
    unsafe fn setAutoresizesOutlineColumn_(&self, autoresizesOutlineColumn: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutoresizesOutlineColumn : autoresizesOutlineColumn)
    }
    unsafe fn autosaveExpandedItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosaveExpandedItems)
    }
    unsafe fn setAutosaveExpandedItems_(&self, autosaveExpandedItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosaveExpandedItems : autosaveExpandedItems)
    }
    unsafe fn userInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, userInterfaceLayoutDirection)
    }
    unsafe fn setUserInterfaceLayoutDirection_(
        &self,
        userInterfaceLayoutDirection: NSUserInterfaceLayoutDirection,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUserInterfaceLayoutDirection : userInterfaceLayoutDirection)
    }
    unsafe fn stronglyReferencesItems(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stronglyReferencesItems)
    }
    unsafe fn setStronglyReferencesItems_(&self, stronglyReferencesItems: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStronglyReferencesItems : stronglyReferencesItems)
    }
}
pub trait PNSOutlineViewDataSource: Sized + std::ops::Deref {
    unsafe fn outlineView_numberOfChildrenOfItem_(
        &self,
        outlineView: NSOutlineView,
        item: id,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, numberOfChildrenOfItem : item)
    }
    unsafe fn outlineView_child_ofItem_(
        &self,
        outlineView: NSOutlineView,
        index: NSInteger,
        item: id,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, child : index, ofItem : item)
    }
    unsafe fn outlineView_isItemExpandable_(&self, outlineView: NSOutlineView, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, isItemExpandable : item)
    }
    unsafe fn outlineView_objectValueForTableColumn_byItem_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
        item: id,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, objectValueForTableColumn : tableColumn, byItem : item)
    }
    unsafe fn outlineView_setObjectValue_forTableColumn_byItem_(
        &self,
        outlineView: NSOutlineView,
        object: id,
        tableColumn: NSTableColumn,
        item: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, setObjectValue : object, forTableColumn : tableColumn, byItem : item)
    }
    unsafe fn outlineView_itemForPersistentObject_(
        &self,
        outlineView: NSOutlineView,
        object: id,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, itemForPersistentObject : object)
    }
    unsafe fn outlineView_persistentObjectForItem_(
        &self,
        outlineView: NSOutlineView,
        item: id,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, persistentObjectForItem : item)
    }
    unsafe fn outlineView_sortDescriptorsDidChange_(
        &self,
        outlineView: NSOutlineView,
        oldDescriptors: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, sortDescriptorsDidChange : oldDescriptors)
    }
    unsafe fn outlineView_pasteboardWriterForItem_(
        &self,
        outlineView: NSOutlineView,
        item: id,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, pasteboardWriterForItem : item)
    }
    unsafe fn outlineView_draggingSession_willBeginAtPoint_forItems_(
        &self,
        outlineView: NSOutlineView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        draggedItems: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, draggingSession : session, willBeginAtPoint : screenPoint, forItems : draggedItems)
    }
    unsafe fn outlineView_draggingSession_endedAtPoint_operation_(
        &self,
        outlineView: NSOutlineView,
        session: NSDraggingSession,
        screenPoint: NSPoint,
        operation: NSDragOperation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, draggingSession : session, endedAtPoint : screenPoint, operation : operation)
    }
    unsafe fn outlineView_writeItems_toPasteboard_(
        &self,
        outlineView: NSOutlineView,
        items: NSArray,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, writeItems : items, toPasteboard : pasteboard)
    }
    unsafe fn outlineView_updateDraggingItemsForDrag_(
        &self,
        outlineView: NSOutlineView,
        draggingInfo: *mut u64,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, updateDraggingItemsForDrag : draggingInfo)
    }
    unsafe fn outlineView_validateDrop_proposedItem_proposedChildIndex_(
        &self,
        outlineView: NSOutlineView,
        info: *mut u64,
        item: id,
        index: NSInteger,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, validateDrop : info, proposedItem : item, proposedChildIndex : index)
    }
    unsafe fn outlineView_acceptDrop_item_childIndex_(
        &self,
        outlineView: NSOutlineView,
        info: *mut u64,
        item: id,
        index: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, acceptDrop : info, item : item, childIndex : index)
    }
    unsafe fn outlineView_namesOfPromisedFilesDroppedAtDestination_forDraggedItems_(
        &self,
        outlineView: NSOutlineView,
        dropDestination: NSURL,
        items: NSArray,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, namesOfPromisedFilesDroppedAtDestination : dropDestination, forDraggedItems : items)
    }
}
pub trait PNSOutlineViewDelegate: Sized + std::ops::Deref {
    unsafe fn outlineView_viewForTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
        item: id,
    ) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, viewForTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_rowViewForItem_(
        &self,
        outlineView: NSOutlineView,
        item: id,
    ) -> NSTableRowView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, rowViewForItem : item)
    }
    unsafe fn outlineView_didAddRowView_forRow_(
        &self,
        outlineView: NSOutlineView,
        rowView: NSTableRowView,
        row: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, didAddRowView : rowView, forRow : row)
    }
    unsafe fn outlineView_didRemoveRowView_forRow_(
        &self,
        outlineView: NSOutlineView,
        rowView: NSTableRowView,
        row: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, didRemoveRowView : rowView, forRow : row)
    }
    unsafe fn outlineView_willDisplayCell_forTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        cell: id,
        tableColumn: NSTableColumn,
        item: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, willDisplayCell : cell, forTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_shouldEditTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
        item: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldEditTableColumn : tableColumn, item : item)
    }
    unsafe fn selectionShouldChangeInOutlineView_(&self, outlineView: NSOutlineView) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectionShouldChangeInOutlineView : outlineView)
    }
    unsafe fn outlineView_shouldSelectItem_(&self, outlineView: NSOutlineView, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldSelectItem : item)
    }
    unsafe fn outlineView_selectionIndexesForProposedSelection_(
        &self,
        outlineView: NSOutlineView,
        proposedSelectionIndexes: NSIndexSet,
    ) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, selectionIndexesForProposedSelection : proposedSelectionIndexes)
    }
    unsafe fn outlineView_shouldSelectTableColumn_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldSelectTableColumn : tableColumn)
    }
    unsafe fn outlineView_mouseDownInHeaderOfTableColumn_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, mouseDownInHeaderOfTableColumn : tableColumn)
    }
    unsafe fn outlineView_didClickTableColumn_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, didClickTableColumn : tableColumn)
    }
    unsafe fn outlineView_didDragTableColumn_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, didDragTableColumn : tableColumn)
    }
    unsafe fn outlineView_toolTipForCell_rect_tableColumn_item_mouseLocation_(
        &self,
        outlineView: NSOutlineView,
        cell: NSCell,
        rect: NSRectPointer,
        tableColumn: NSTableColumn,
        item: id,
        mouseLocation: NSPoint,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, toolTipForCell : cell, rect : rect, tableColumn : tableColumn, item : item, mouseLocation : mouseLocation)
    }
    unsafe fn outlineView_heightOfRowByItem_(&self, outlineView: NSOutlineView, item: id) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, heightOfRowByItem : item)
    }
    unsafe fn outlineView_tintConfigurationForItem_(
        &self,
        outlineView: NSOutlineView,
        item: id,
    ) -> NSTintConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, tintConfigurationForItem : item)
    }
    unsafe fn outlineView_typeSelectStringForTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
        item: id,
    ) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, typeSelectStringForTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_nextTypeSelectMatchFromItem_toItem_forString_(
        &self,
        outlineView: NSOutlineView,
        startItem: id,
        endItem: id,
        searchString: NSString,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, nextTypeSelectMatchFromItem : startItem, toItem : endItem, forString : searchString)
    }
    unsafe fn outlineView_shouldTypeSelectForEvent_withCurrentSearchString_(
        &self,
        outlineView: NSOutlineView,
        event: NSEvent,
        searchString: NSString,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldTypeSelectForEvent : event, withCurrentSearchString : searchString)
    }
    unsafe fn outlineView_shouldShowCellExpansionForTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
        item: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldShowCellExpansionForTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_shouldTrackCell_forTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        cell: NSCell,
        tableColumn: NSTableColumn,
        item: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldTrackCell : cell, forTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_dataCellForTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        tableColumn: NSTableColumn,
        item: id,
    ) -> NSCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, dataCellForTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_isGroupItem_(&self, outlineView: NSOutlineView, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, isGroupItem : item)
    }
    unsafe fn outlineView_shouldExpandItem_(&self, outlineView: NSOutlineView, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldExpandItem : item)
    }
    unsafe fn outlineView_shouldCollapseItem_(&self, outlineView: NSOutlineView, item: id) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldCollapseItem : item)
    }
    unsafe fn outlineView_willDisplayOutlineCell_forTableColumn_item_(
        &self,
        outlineView: NSOutlineView,
        cell: id,
        tableColumn: NSTableColumn,
        item: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, willDisplayOutlineCell : cell, forTableColumn : tableColumn, item : item)
    }
    unsafe fn outlineView_sizeToFitWidthOfColumn_(
        &self,
        outlineView: NSOutlineView,
        column: NSInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, sizeToFitWidthOfColumn : column)
    }
    unsafe fn outlineView_shouldReorderColumn_toColumn_(
        &self,
        outlineView: NSOutlineView,
        columnIndex: NSInteger,
        newColumnIndex: NSInteger,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldReorderColumn : columnIndex, toColumn : newColumnIndex)
    }
    unsafe fn outlineView_shouldShowOutlineCellForItem_(
        &self,
        outlineView: NSOutlineView,
        item: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, shouldShowOutlineCellForItem : item)
    }
    unsafe fn outlineView_userCanChangeVisibilityOfTableColumn_(
        &self,
        outlineView: NSOutlineView,
        column: NSTableColumn,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, userCanChangeVisibilityOfTableColumn : column)
    }
    unsafe fn outlineView_userDidChangeVisibilityOfTableColumns_(
        &self,
        outlineView: NSOutlineView,
        columns: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineView : outlineView, userDidChangeVisibilityOfTableColumns : columns)
    }
    unsafe fn outlineViewSelectionDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewSelectionDidChange : notification)
    }
    unsafe fn outlineViewColumnDidMove_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewColumnDidMove : notification)
    }
    unsafe fn outlineViewColumnDidResize_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewColumnDidResize : notification)
    }
    unsafe fn outlineViewSelectionIsChanging_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewSelectionIsChanging : notification)
    }
    unsafe fn outlineViewItemWillExpand_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewItemWillExpand : notification)
    }
    unsafe fn outlineViewItemDidExpand_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewItemDidExpand : notification)
    }
    unsafe fn outlineViewItemWillCollapse_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewItemWillCollapse : notification)
    }
    unsafe fn outlineViewItemDidCollapse_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, outlineViewItemDidCollapse : notification)
    }
}
pub trait PNSInputServiceProvider: Sized + std::ops::Deref {
    unsafe fn insertText_client_(&self, string: id, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertText : string, client : sender)
    }
    unsafe fn doCommandBySelector_client_(&self, selector: objc2::runtime::Sel, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, doCommandBySelector : selector, client : sender)
    }
    unsafe fn markedTextAbandoned_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, markedTextAbandoned : sender)
    }
    unsafe fn markedTextSelectionChanged_client_(&self, newSel: NSRange, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, markedTextSelectionChanged : newSel, client : sender)
    }
    unsafe fn terminate_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, terminate : sender)
    }
    unsafe fn canBeDisabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canBeDisabled)
    }
    unsafe fn wantsToInterpretAllKeystrokes(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToInterpretAllKeystrokes)
    }
    unsafe fn wantsToHandleMouseEvents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToHandleMouseEvents)
    }
    unsafe fn wantsToDelayTextChangeNotifications(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsToDelayTextChangeNotifications)
    }
    unsafe fn inputClientBecomeActive_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, inputClientBecomeActive : sender)
    }
    unsafe fn inputClientResignActive_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, inputClientResignActive : sender)
    }
    unsafe fn inputClientEnabled_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, inputClientEnabled : sender)
    }
    unsafe fn inputClientDisabled_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, inputClientDisabled : sender)
    }
    unsafe fn activeConversationWillChange_fromOldConversation_(
        &self,
        sender: id,
        oldConversation: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activeConversationWillChange : sender, fromOldConversation : oldConversation)
    }
    unsafe fn activeConversationChanged_toNewConversation_(
        &self,
        sender: id,
        newConversation: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, activeConversationChanged : sender, toNewConversation : newConversation)
    }
}
pub trait PNSInputServerMouseTracker: Sized + std::ops::Deref {
    unsafe fn mouseDownOnCharacterIndex_atCoordinate_withModifier_client_(
        &self,
        index: NSUInteger,
        point: NSPoint,
        flags: NSUInteger,
        sender: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseDownOnCharacterIndex : index, atCoordinate : point, withModifier : flags, client : sender)
    }
    unsafe fn mouseDraggedOnCharacterIndex_atCoordinate_withModifier_client_(
        &self,
        index: NSUInteger,
        point: NSPoint,
        flags: NSUInteger,
        sender: id,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseDraggedOnCharacterIndex : index, atCoordinate : point, withModifier : flags, client : sender)
    }
    unsafe fn mouseUpOnCharacterIndex_atCoordinate_withModifier_client_(
        &self,
        index: NSUInteger,
        point: NSPoint,
        flags: NSUInteger,
        sender: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseUpOnCharacterIndex : index, atCoordinate : point, withModifier : flags, client : sender)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSInputServer(pub id);
impl std::ops::Deref for NSInputServer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSInputServer {}
impl NSInputServer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSInputServer").unwrap(), alloc) })
    }
}
impl PNSInputServiceProvider for NSInputServer {}
impl PNSInputServerMouseTracker for NSInputServer {}
impl INSObject for NSInputServer {}
impl PNSObject for NSInputServer {}
impl std::convert::TryFrom<NSObject> for NSInputServer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSInputServer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSInputServer").unwrap()) };
        if is_kind_of {
            Ok(NSInputServer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSInputServer")
        }
    }
}
impl INSInputServer for NSInputServer {}
pub trait INSInputServer: Sized + std::ops::Deref {
    unsafe fn initWithDelegate_name_(&self, delegate: id, name: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDelegate : delegate, name : name)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStringDrawingContext(pub id);
impl std::ops::Deref for NSStringDrawingContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStringDrawingContext {}
impl NSStringDrawingContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStringDrawingContext").unwrap(), alloc) })
    }
}
impl INSObject for NSStringDrawingContext {}
impl PNSObject for NSStringDrawingContext {}
impl std::convert::TryFrom<NSObject> for NSStringDrawingContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSStringDrawingContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStringDrawingContext").unwrap()) };
        if is_kind_of {
            Ok(NSStringDrawingContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSStringDrawingContext")
        }
    }
}
impl INSStringDrawingContext for NSStringDrawingContext {}
pub trait INSStringDrawingContext: Sized + std::ops::Deref {
    unsafe fn minimumScaleFactor(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumScaleFactor)
    }
    unsafe fn setMinimumScaleFactor_(&self, minimumScaleFactor: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinimumScaleFactor : minimumScaleFactor)
    }
    unsafe fn actualScaleFactor(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, actualScaleFactor)
    }
    unsafe fn totalBounds(&self) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, totalBounds)
    }
}
pub type NSStringDrawingOptions = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSRulerMarker(pub id);
impl std::ops::Deref for NSRulerMarker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSRulerMarker {}
impl NSRulerMarker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSRulerMarker").unwrap(), alloc) })
    }
}
impl PNSCopying for NSRulerMarker {}
impl PNSCoding for NSRulerMarker {}
impl INSObject for NSRulerMarker {}
impl PNSObject for NSRulerMarker {}
impl std::convert::TryFrom<NSObject> for NSRulerMarker {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSRulerMarker, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSRulerMarker").unwrap()) };
        if is_kind_of {
            Ok(NSRulerMarker(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSRulerMarker")
        }
    }
}
impl INSRulerMarker for NSRulerMarker {}
pub trait INSRulerMarker: Sized + std::ops::Deref {
    unsafe fn initWithRulerView_markerLocation_image_imageOrigin_(
        &self,
        ruler: NSRulerView,
        location: CGFloat,
        image: NSImage,
        imageOrigin: NSPoint,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRulerView : ruler, markerLocation : location, image : image, imageOrigin : imageOrigin)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn drawRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawRect : rect)
    }
    unsafe fn trackMouse_adding_(&self, mouseDownEvent: NSEvent, isAdding: BOOL) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackMouse : mouseDownEvent, adding : isAdding)
    }
    unsafe fn ruler(&self) -> NSRulerView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ruler)
    }
    unsafe fn markerLocation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, markerLocation)
    }
    unsafe fn setMarkerLocation_(&self, markerLocation: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMarkerLocation : markerLocation)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn imageOrigin(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageOrigin)
    }
    unsafe fn setImageOrigin_(&self, imageOrigin: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImageOrigin : imageOrigin)
    }
    unsafe fn isMovable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isMovable)
    }
    unsafe fn setMovable_(&self, movable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMovable : movable)
    }
    unsafe fn isRemovable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRemovable)
    }
    unsafe fn setRemovable_(&self, removable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRemovable : removable)
    }
    unsafe fn isDragging(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDragging)
    }
    unsafe fn representedObject(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedObject)
    }
    unsafe fn setRepresentedObject_(&self, representedObject: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRepresentedObject : representedObject)
    }
    unsafe fn imageRectInRuler(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageRectInRuler)
    }
    unsafe fn thicknessRequiredInRuler(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, thicknessRequiredInRuler)
    }
}
pub type NSRulerOrientation = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSRulerView(pub id);
impl std::ops::Deref for NSRulerView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSRulerView {}
impl NSRulerView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSRulerView").unwrap(), alloc) })
    }
}
impl INSView for NSRulerView {}
impl PNSAnimatablePropertyContainer for NSRulerView {}
impl PNSUserInterfaceItemIdentification for NSRulerView {}
impl PNSDraggingDestination for NSRulerView {}
impl PNSAppearanceCustomization for NSRulerView {}
impl PNSAccessibilityElement for NSRulerView {}
impl PNSAccessibility for NSRulerView {}
impl std::convert::TryFrom<NSView> for NSRulerView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSRulerView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSRulerView").unwrap()) };
        if is_kind_of {
            Ok(NSRulerView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSRulerView")
        }
    }
}
impl INSResponder for NSRulerView {}
impl PNSCoding for NSRulerView {}
impl INSObject for NSRulerView {}
impl PNSObject for NSRulerView {}
impl INSRulerView for NSRulerView {}
pub trait INSRulerView: Sized + std::ops::Deref {
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initWithScrollView_orientation_(
        &self,
        scrollView: NSScrollView,
        orientation: NSRulerOrientation,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithScrollView : scrollView, orientation : orientation)
    }
    unsafe fn addMarker_(&self, marker: NSRulerMarker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addMarker : marker)
    }
    unsafe fn removeMarker_(&self, marker: NSRulerMarker)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeMarker : marker)
    }
    unsafe fn trackMarker_withMouseEvent_(&self, marker: NSRulerMarker, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, trackMarker : marker, withMouseEvent : event)
    }
    unsafe fn moveRulerlineFromLocation_toLocation_(
        &self,
        oldLocation: CGFloat,
        newLocation: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveRulerlineFromLocation : oldLocation, toLocation : newLocation)
    }
    unsafe fn invalidateHashMarks(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateHashMarks)
    }
    unsafe fn drawHashMarksAndLabelsInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawHashMarksAndLabelsInRect : rect)
    }
    unsafe fn drawMarkersInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawMarkersInRect : rect)
    }
    unsafe fn scrollView(&self) -> NSScrollView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, scrollView)
    }
    unsafe fn setScrollView_(&self, scrollView: NSScrollView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setScrollView : scrollView)
    }
    unsafe fn orientation(&self) -> NSRulerOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, orientation)
    }
    unsafe fn setOrientation_(&self, orientation: NSRulerOrientation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOrientation : orientation)
    }
    unsafe fn baselineLocation(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baselineLocation)
    }
    unsafe fn requiredThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, requiredThickness)
    }
    unsafe fn ruleThickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ruleThickness)
    }
    unsafe fn setRuleThickness_(&self, ruleThickness: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRuleThickness : ruleThickness)
    }
    unsafe fn reservedThicknessForMarkers(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedThicknessForMarkers)
    }
    unsafe fn setReservedThicknessForMarkers_(&self, reservedThicknessForMarkers: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReservedThicknessForMarkers : reservedThicknessForMarkers)
    }
    unsafe fn reservedThicknessForAccessoryView(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reservedThicknessForAccessoryView)
    }
    unsafe fn setReservedThicknessForAccessoryView_(
        &self,
        reservedThicknessForAccessoryView: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setReservedThicknessForAccessoryView : reservedThicknessForAccessoryView)
    }
    unsafe fn measurementUnits(&self) -> NSRulerViewUnitName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, measurementUnits)
    }
    unsafe fn setMeasurementUnits_(&self, measurementUnits: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMeasurementUnits : measurementUnits)
    }
    unsafe fn originOffset(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, originOffset)
    }
    unsafe fn setOriginOffset_(&self, originOffset: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOriginOffset : originOffset)
    }
    unsafe fn clientView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clientView)
    }
    unsafe fn setClientView_(&self, clientView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setClientView : clientView)
    }
    unsafe fn markers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, markers)
    }
    unsafe fn setMarkers_(&self, markers: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMarkers : markers)
    }
    unsafe fn accessoryView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, accessoryView)
    }
    unsafe fn setAccessoryView_(&self, accessoryView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAccessoryView : accessoryView)
    }
    unsafe fn isFlipped(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isFlipped)
    }
    unsafe fn registerUnitWithName_abbreviation_unitToPointsConversionFactor_stepUpCycle_stepDownCycle_(
        unitName: NSString,
        abbreviation: NSString,
        conversionFactor: CGFloat,
        stepUpCycle: NSArray,
        stepDownCycle: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSRulerView").unwrap(), registerUnitWithName : unitName, abbreviation : abbreviation, unitToPointsConversionFactor : conversionFactor, stepUpCycle : stepUpCycle, stepDownCycle : stepDownCycle)
    }
}
impl NSView_NSRulerMarkerClientViewDelegation for NSView {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSecureTextField(pub id);
impl std::ops::Deref for NSSecureTextField {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSecureTextField {}
impl NSSecureTextField {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSecureTextField").unwrap(), alloc) })
    }
}
impl INSTextField for NSSecureTextField {}
impl PNSUserInterfaceValidations for NSSecureTextField {}
impl PNSAccessibilityNavigableStaticText for NSSecureTextField {}
impl PNSTextContent for NSSecureTextField {}
impl std::convert::TryFrom<NSTextField> for NSSecureTextField {
    type Error = &'static str;
    fn try_from(parent: NSTextField) -> Result<NSSecureTextField, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSecureTextField").unwrap()) };
        if is_kind_of {
            Ok(NSSecureTextField(parent.0))
        } else {
            Err("This NSTextField cannot be downcasted to NSSecureTextField")
        }
    }
}
impl INSControl for NSSecureTextField {}
impl INSView for NSSecureTextField {}
impl PNSAnimatablePropertyContainer for NSSecureTextField {}
impl PNSUserInterfaceItemIdentification for NSSecureTextField {}
impl PNSDraggingDestination for NSSecureTextField {}
impl PNSAppearanceCustomization for NSSecureTextField {}
impl PNSAccessibilityElement for NSSecureTextField {}
impl PNSAccessibility for NSSecureTextField {}
impl INSResponder for NSSecureTextField {}
impl PNSCoding for NSSecureTextField {}
impl INSObject for NSSecureTextField {}
impl PNSObject for NSSecureTextField {}
impl INSSecureTextField for NSSecureTextField {}
pub trait INSSecureTextField: Sized + std::ops::Deref {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSecureTextFieldCell(pub id);
impl std::ops::Deref for NSSecureTextFieldCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSecureTextFieldCell {}
impl NSSecureTextFieldCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSecureTextFieldCell").unwrap(), alloc) })
    }
}
impl INSTextFieldCell for NSSecureTextFieldCell {}
impl std::convert::TryFrom<NSTextFieldCell> for NSSecureTextFieldCell {
    type Error = &'static str;
    fn try_from(parent: NSTextFieldCell) -> Result<NSSecureTextFieldCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSecureTextFieldCell").unwrap()) };
        if is_kind_of {
            Ok(NSSecureTextFieldCell(parent.0))
        } else {
            Err("This NSTextFieldCell cannot be downcasted to NSSecureTextFieldCell")
        }
    }
}
impl INSActionCell for NSSecureTextFieldCell {}
impl INSCell for NSSecureTextFieldCell {}
impl PNSCopying for NSSecureTextFieldCell {}
impl PNSCoding for NSSecureTextFieldCell {}
impl PNSUserInterfaceItemIdentification for NSSecureTextFieldCell {}
impl PNSAccessibilityElement for NSSecureTextFieldCell {}
impl PNSAccessibility for NSSecureTextFieldCell {}
impl INSObject for NSSecureTextFieldCell {}
impl PNSObject for NSSecureTextFieldCell {}
impl INSSecureTextFieldCell for NSSecureTextFieldCell {}
pub trait INSSecureTextFieldCell: Sized + std::ops::Deref {
    unsafe fn echosBullets(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, echosBullets)
    }
    unsafe fn setEchosBullets_(&self, echosBullets: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEchosBullets : echosBullets)
    }
}
impl NSResponder_NSInterfaceStyle for NSResponder {}
pub type NSProgressIndicatorStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSProgressIndicator(pub id);
impl std::ops::Deref for NSProgressIndicator {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSProgressIndicator {}
impl NSProgressIndicator {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSProgressIndicator").unwrap(), alloc) })
    }
}
impl PNSAccessibilityProgressIndicator for NSProgressIndicator {}
impl INSView for NSProgressIndicator {}
impl PNSAnimatablePropertyContainer for NSProgressIndicator {}
impl PNSUserInterfaceItemIdentification for NSProgressIndicator {}
impl PNSDraggingDestination for NSProgressIndicator {}
impl PNSAppearanceCustomization for NSProgressIndicator {}
impl PNSAccessibilityElement for NSProgressIndicator {}
impl PNSAccessibility for NSProgressIndicator {}
impl std::convert::TryFrom<NSView> for NSProgressIndicator {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSProgressIndicator, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSProgressIndicator").unwrap()) };
        if is_kind_of {
            Ok(NSProgressIndicator(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSProgressIndicator")
        }
    }
}
impl INSResponder for NSProgressIndicator {}
impl PNSCoding for NSProgressIndicator {}
impl INSObject for NSProgressIndicator {}
impl PNSObject for NSProgressIndicator {}
impl INSProgressIndicator for NSProgressIndicator {}
pub trait INSProgressIndicator: Sized + std::ops::Deref {
    unsafe fn incrementBy_(&self, delta: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, incrementBy : delta)
    }
    unsafe fn startAnimation_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, startAnimation : sender)
    }
    unsafe fn stopAnimation_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, stopAnimation : sender)
    }
    unsafe fn sizeToFit(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sizeToFit)
    }
    unsafe fn isIndeterminate(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isIndeterminate)
    }
    unsafe fn setIndeterminate_(&self, indeterminate: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIndeterminate : indeterminate)
    }
    unsafe fn controlSize(&self) -> NSControlSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlSize)
    }
    unsafe fn setControlSize_(&self, controlSize: NSControlSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlSize : controlSize)
    }
    unsafe fn doubleValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleValue)
    }
    unsafe fn setDoubleValue_(&self, doubleValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleValue : doubleValue)
    }
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn observedProgress(&self) -> NSProgress
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, observedProgress)
    }
    unsafe fn setObservedProgress_(&self, observedProgress: NSProgress)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObservedProgress : observedProgress)
    }
    unsafe fn usesThreadedAnimation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesThreadedAnimation)
    }
    unsafe fn setUsesThreadedAnimation_(&self, usesThreadedAnimation: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesThreadedAnimation : usesThreadedAnimation)
    }
    unsafe fn style(&self) -> NSProgressIndicatorStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, style)
    }
    unsafe fn setStyle_(&self, style: NSProgressIndicatorStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStyle : style)
    }
    unsafe fn isDisplayedWhenStopped(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isDisplayedWhenStopped)
    }
    unsafe fn setDisplayedWhenStopped_(&self, displayedWhenStopped: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayedWhenStopped : displayedWhenStopped)
    }
}
pub type NSProgressIndicatorThickness = NSUInteger;
impl NSProgressIndicator_NSProgressIndicatorDeprecated for NSProgressIndicator {}
pub type NSTabViewType = NSUInteger;
pub type NSTabPosition = NSUInteger;
pub type NSTabViewBorderType = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTabView(pub id);
impl std::ops::Deref for NSTabView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTabView {}
impl NSTabView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTabView").unwrap(), alloc) })
    }
}
impl INSView for NSTabView {}
impl PNSAnimatablePropertyContainer for NSTabView {}
impl PNSUserInterfaceItemIdentification for NSTabView {}
impl PNSDraggingDestination for NSTabView {}
impl PNSAppearanceCustomization for NSTabView {}
impl PNSAccessibilityElement for NSTabView {}
impl PNSAccessibility for NSTabView {}
impl std::convert::TryFrom<NSView> for NSTabView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSTabView, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTabView").unwrap()) };
        if is_kind_of {
            Ok(NSTabView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSTabView")
        }
    }
}
impl INSResponder for NSTabView {}
impl PNSCoding for NSTabView {}
impl INSObject for NSTabView {}
impl PNSObject for NSTabView {}
impl INSTabView for NSTabView {}
pub trait INSTabView: Sized + std::ops::Deref {
    unsafe fn selectTabViewItem_(&self, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectTabViewItem : tabViewItem)
    }
    unsafe fn selectTabViewItemAtIndex_(&self, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectTabViewItemAtIndex : index)
    }
    unsafe fn selectTabViewItemWithIdentifier_(&self, identifier: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectTabViewItemWithIdentifier : identifier)
    }
    unsafe fn takeSelectedTabViewItemFromSender_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeSelectedTabViewItemFromSender : sender)
    }
    unsafe fn selectFirstTabViewItem_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectFirstTabViewItem : sender)
    }
    unsafe fn selectLastTabViewItem_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectLastTabViewItem : sender)
    }
    unsafe fn selectNextTabViewItem_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectNextTabViewItem : sender)
    }
    unsafe fn selectPreviousTabViewItem_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectPreviousTabViewItem : sender)
    }
    unsafe fn addTabViewItem_(&self, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTabViewItem : tabViewItem)
    }
    unsafe fn insertTabViewItem_atIndex_(&self, tabViewItem: NSTabViewItem, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertTabViewItem : tabViewItem, atIndex : index)
    }
    unsafe fn removeTabViewItem_(&self, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTabViewItem : tabViewItem)
    }
    unsafe fn tabViewItemAtPoint_(&self, point: NSPoint) -> NSTabViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabViewItemAtPoint : point)
    }
    unsafe fn indexOfTabViewItem_(&self, tabViewItem: NSTabViewItem) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfTabViewItem : tabViewItem)
    }
    unsafe fn tabViewItemAtIndex_(&self, index: NSInteger) -> NSTabViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabViewItemAtIndex : index)
    }
    unsafe fn indexOfTabViewItemWithIdentifier_(&self, identifier: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, indexOfTabViewItemWithIdentifier : identifier)
    }
    unsafe fn selectedTabViewItem(&self) -> NSTabViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedTabViewItem)
    }
    unsafe fn font(&self) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, font)
    }
    unsafe fn setFont_(&self, font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFont : font)
    }
    unsafe fn tabViewType(&self) -> NSTabViewType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabViewType)
    }
    unsafe fn setTabViewType_(&self, tabViewType: NSTabViewType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabViewType : tabViewType)
    }
    unsafe fn tabPosition(&self) -> NSTabPosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabPosition)
    }
    unsafe fn setTabPosition_(&self, tabPosition: NSTabPosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabPosition : tabPosition)
    }
    unsafe fn tabViewBorderType(&self) -> NSTabViewBorderType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabViewBorderType)
    }
    unsafe fn setTabViewBorderType_(&self, tabViewBorderType: NSTabViewBorderType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabViewBorderType : tabViewBorderType)
    }
    unsafe fn tabViewItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabViewItems)
    }
    unsafe fn setTabViewItems_(&self, tabViewItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabViewItems : tabViewItems)
    }
    unsafe fn allowsTruncatedLabels(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsTruncatedLabels)
    }
    unsafe fn setAllowsTruncatedLabels_(&self, allowsTruncatedLabels: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsTruncatedLabels : allowsTruncatedLabels)
    }
    unsafe fn minimumSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minimumSize)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn controlSize(&self) -> NSControlSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlSize)
    }
    unsafe fn setControlSize_(&self, controlSize: NSControlSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlSize : controlSize)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn contentRect(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentRect)
    }
    unsafe fn numberOfTabViewItems(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfTabViewItems)
    }
    unsafe fn controlTint(&self) -> NSControlTint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlTint)
    }
    unsafe fn setControlTint_(&self, controlTint: NSControlTint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlTint : controlTint)
    }
}
pub trait PNSTabViewDelegate: Sized + std::ops::Deref {
    unsafe fn tabView_shouldSelectTabViewItem_(
        &self,
        tabView: NSTabView,
        tabViewItem: NSTabViewItem,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabView : tabView, shouldSelectTabViewItem : tabViewItem)
    }
    unsafe fn tabView_willSelectTabViewItem_(&self, tabView: NSTabView, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabView : tabView, willSelectTabViewItem : tabViewItem)
    }
    unsafe fn tabView_didSelectTabViewItem_(&self, tabView: NSTabView, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabView : tabView, didSelectTabViewItem : tabViewItem)
    }
    unsafe fn tabViewDidChangeNumberOfTabViewItems_(&self, tabView: NSTabView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabViewDidChangeNumberOfTabViewItems : tabView)
    }
}
pub type NSTabViewControllerTabStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTabViewController(pub id);
impl std::ops::Deref for NSTabViewController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTabViewController {}
impl NSTabViewController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTabViewController").unwrap(), alloc) })
    }
}
impl PNSTabViewDelegate for NSTabViewController {}
impl PNSToolbarDelegate for NSTabViewController {}
impl INSViewController for NSTabViewController {}
impl PNSEditor for NSTabViewController {}
impl PNSSeguePerforming for NSTabViewController {}
impl PNSUserInterfaceItemIdentification for NSTabViewController {}
impl std::convert::TryFrom<NSViewController> for NSTabViewController {
    type Error = &'static str;
    fn try_from(parent: NSViewController) -> Result<NSTabViewController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTabViewController").unwrap()) };
        if is_kind_of {
            Ok(NSTabViewController(parent.0))
        } else {
            Err("This NSViewController cannot be downcasted to NSTabViewController")
        }
    }
}
impl INSResponder for NSTabViewController {}
impl PNSCoding for NSTabViewController {}
impl INSObject for NSTabViewController {}
impl PNSObject for NSTabViewController {}
impl INSTabViewController for NSTabViewController {}
pub trait INSTabViewController: Sized + std::ops::Deref {
    unsafe fn addTabViewItem_(&self, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTabViewItem : tabViewItem)
    }
    unsafe fn insertTabViewItem_atIndex_(&self, tabViewItem: NSTabViewItem, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertTabViewItem : tabViewItem, atIndex : index)
    }
    unsafe fn removeTabViewItem_(&self, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTabViewItem : tabViewItem)
    }
    unsafe fn tabViewItemForViewController_(
        &self,
        viewController: NSViewController,
    ) -> NSTabViewItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabViewItemForViewController : viewController)
    }
    unsafe fn viewDidLoad(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidLoad)
    }
    unsafe fn tabView_willSelectTabViewItem_(&self, tabView: NSTabView, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabView : tabView, willSelectTabViewItem : tabViewItem)
    }
    unsafe fn tabView_didSelectTabViewItem_(&self, tabView: NSTabView, tabViewItem: NSTabViewItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabView : tabView, didSelectTabViewItem : tabViewItem)
    }
    unsafe fn tabView_shouldSelectTabViewItem_(
        &self,
        tabView: NSTabView,
        tabViewItem: NSTabViewItem,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tabView : tabView, shouldSelectTabViewItem : tabViewItem)
    }
    unsafe fn toolbar_itemForItemIdentifier_willBeInsertedIntoToolbar_(
        &self,
        toolbar: NSToolbar,
        itemIdentifier: NSString,
        flag: BOOL,
    ) -> NSToolbarItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbar : toolbar, itemForItemIdentifier : itemIdentifier, willBeInsertedIntoToolbar : flag)
    }
    unsafe fn toolbarDefaultItemIdentifiers_(&self, toolbar: NSToolbar) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarDefaultItemIdentifiers : toolbar)
    }
    unsafe fn toolbarAllowedItemIdentifiers_(&self, toolbar: NSToolbar) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarAllowedItemIdentifiers : toolbar)
    }
    unsafe fn toolbarSelectableItemIdentifiers_(&self, toolbar: NSToolbar) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toolbarSelectableItemIdentifiers : toolbar)
    }
    unsafe fn tabStyle(&self) -> NSTabViewControllerTabStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabStyle)
    }
    unsafe fn setTabStyle_(&self, tabStyle: NSTabViewControllerTabStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabStyle : tabStyle)
    }
    unsafe fn tabView(&self) -> NSTabView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabView)
    }
    unsafe fn setTabView_(&self, tabView: NSTabView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabView : tabView)
    }
    unsafe fn transitionOptions(&self) -> NSViewControllerTransitionOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transitionOptions)
    }
    unsafe fn setTransitionOptions_(&self, transitionOptions: NSViewControllerTransitionOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransitionOptions : transitionOptions)
    }
    unsafe fn canPropagateSelectedChildViewControllerTitle(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canPropagateSelectedChildViewControllerTitle)
    }
    unsafe fn setCanPropagateSelectedChildViewControllerTitle_(
        &self,
        canPropagateSelectedChildViewControllerTitle: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanPropagateSelectedChildViewControllerTitle : canPropagateSelectedChildViewControllerTitle)
    }
    unsafe fn tabViewItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabViewItems)
    }
    unsafe fn setTabViewItems_(&self, tabViewItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTabViewItems : tabViewItems)
    }
    unsafe fn selectedTabViewItemIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedTabViewItemIndex)
    }
    unsafe fn setSelectedTabViewItemIndex_(&self, selectedTabViewItemIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedTabViewItemIndex : selectedTabViewItemIndex)
    }
}
pub type NSTabState = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTabViewItem(pub id);
impl std::ops::Deref for NSTabViewItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTabViewItem {}
impl NSTabViewItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTabViewItem").unwrap(), alloc) })
    }
}
impl PNSCoding for NSTabViewItem {}
impl INSObject for NSTabViewItem {}
impl PNSObject for NSTabViewItem {}
impl std::convert::TryFrom<NSObject> for NSTabViewItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTabViewItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTabViewItem").unwrap()) };
        if is_kind_of {
            Ok(NSTabViewItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTabViewItem")
        }
    }
}
impl INSTabViewItem for NSTabViewItem {}
pub trait INSTabViewItem: Sized + std::ops::Deref {
    unsafe fn initWithIdentifier_(&self, identifier: id) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithIdentifier : identifier)
    }
    unsafe fn drawLabel_inRect_(&self, shouldTruncateLabel: BOOL, labelRect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawLabel : shouldTruncateLabel, inRect : labelRect)
    }
    unsafe fn sizeOfLabel_(&self, computeMin: BOOL) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sizeOfLabel : computeMin)
    }
    unsafe fn identifier(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn setIdentifier_(&self, identifier: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIdentifier : identifier)
    }
    unsafe fn color(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, color)
    }
    unsafe fn setColor_(&self, color: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setColor : color)
    }
    unsafe fn label(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, label)
    }
    unsafe fn setLabel_(&self, label: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn viewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewController)
    }
    unsafe fn setViewController_(&self, viewController: NSViewController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setViewController : viewController)
    }
    unsafe fn tabState(&self) -> NSTabState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabState)
    }
    unsafe fn tabView(&self) -> NSTabView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tabView)
    }
    unsafe fn initialFirstResponder(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, initialFirstResponder)
    }
    unsafe fn setInitialFirstResponder_(&self, initialFirstResponder: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInitialFirstResponder : initialFirstResponder)
    }
    unsafe fn toolTip(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, toolTip)
    }
    unsafe fn setToolTip_(&self, toolTip: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setToolTip : toolTip)
    }
    unsafe fn tabViewItemWithViewController_(viewController: NSViewController) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTabViewItem").unwrap(), tabViewItemWithViewController : viewController)
    }
}
pub type NSLineCapStyle = NSUInteger;
pub type NSLineJoinStyle = NSUInteger;
pub type NSWindingRule = NSUInteger;
pub type NSBezierPathElement = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSBezierPath(pub id);
impl std::ops::Deref for NSBezierPath {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSBezierPath {}
impl NSBezierPath {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), alloc) })
    }
}
impl PNSCopying for NSBezierPath {}
impl PNSSecureCoding for NSBezierPath {}
impl INSObject for NSBezierPath {}
impl PNSObject for NSBezierPath {}
impl std::convert::TryFrom<NSObject> for NSBezierPath {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSBezierPath, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap()) };
        if is_kind_of {
            Ok(NSBezierPath(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSBezierPath")
        }
    }
}
impl INSBezierPath for NSBezierPath {}
pub trait INSBezierPath: Sized + std::ops::Deref {
    unsafe fn moveToPoint_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveToPoint : point)
    }
    unsafe fn lineToPoint_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lineToPoint : point)
    }
    unsafe fn curveToPoint_controlPoint1_controlPoint2_(
        &self,
        endPoint: NSPoint,
        controlPoint1: NSPoint,
        controlPoint2: NSPoint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, curveToPoint : endPoint, controlPoint1 : controlPoint1, controlPoint2 : controlPoint2)
    }
    unsafe fn curveToPoint_controlPoint_(&self, endPoint: NSPoint, controlPoint: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, curveToPoint : endPoint, controlPoint : controlPoint)
    }
    unsafe fn closePath(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, closePath)
    }
    unsafe fn removeAllPoints(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, removeAllPoints)
    }
    unsafe fn relativeMoveToPoint_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relativeMoveToPoint : point)
    }
    unsafe fn relativeLineToPoint_(&self, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relativeLineToPoint : point)
    }
    unsafe fn relativeCurveToPoint_controlPoint1_controlPoint2_(
        &self,
        endPoint: NSPoint,
        controlPoint1: NSPoint,
        controlPoint2: NSPoint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relativeCurveToPoint : endPoint, controlPoint1 : controlPoint1, controlPoint2 : controlPoint2)
    }
    unsafe fn relativeCurveToPoint_controlPoint_(&self, endPoint: NSPoint, controlPoint: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relativeCurveToPoint : endPoint, controlPoint : controlPoint)
    }
    unsafe fn getLineDash_count_phase_(
        &self,
        pattern: *mut CGFloat,
        count: *mut NSInteger,
        phase: *mut CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getLineDash : pattern, count : count, phase : phase)
    }
    unsafe fn setLineDash_count_phase_(
        &self,
        pattern: *const CGFloat,
        count: NSInteger,
        phase: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineDash : pattern, count : count, phase : phase)
    }
    unsafe fn stroke(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stroke)
    }
    unsafe fn fill(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fill)
    }
    unsafe fn addClip(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, addClip)
    }
    unsafe fn setClip(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, setClip)
    }
    unsafe fn transformUsingAffineTransform_(&self, transform: NSAffineTransform)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, transformUsingAffineTransform : transform)
    }
    unsafe fn elementAtIndex_associatedPoints_(
        &self,
        index: NSInteger,
        points: NSPointArray,
    ) -> NSBezierPathElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, elementAtIndex : index, associatedPoints : points)
    }
    unsafe fn elementAtIndex_(&self, index: NSInteger) -> NSBezierPathElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, elementAtIndex : index)
    }
    unsafe fn setAssociatedPoints_atIndex_(&self, points: NSPointArray, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAssociatedPoints : points, atIndex : index)
    }
    unsafe fn appendBezierPath_(&self, path: NSBezierPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPath : path)
    }
    unsafe fn appendBezierPathWithRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithRect : rect)
    }
    unsafe fn appendBezierPathWithPoints_count_(&self, points: NSPointArray, count: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithPoints : points, count : count)
    }
    unsafe fn appendBezierPathWithOvalInRect_(&self, rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithOvalInRect : rect)
    }
    unsafe fn appendBezierPathWithArcWithCenter_radius_startAngle_endAngle_clockwise_(
        &self,
        center: NSPoint,
        radius: CGFloat,
        startAngle: CGFloat,
        endAngle: CGFloat,
        clockwise: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithArcWithCenter : center, radius : radius, startAngle : startAngle, endAngle : endAngle, clockwise : clockwise)
    }
    unsafe fn appendBezierPathWithArcWithCenter_radius_startAngle_endAngle_(
        &self,
        center: NSPoint,
        radius: CGFloat,
        startAngle: CGFloat,
        endAngle: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithArcWithCenter : center, radius : radius, startAngle : startAngle, endAngle : endAngle)
    }
    unsafe fn appendBezierPathWithArcFromPoint_toPoint_radius_(
        &self,
        point1: NSPoint,
        point2: NSPoint,
        radius: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithArcFromPoint : point1, toPoint : point2, radius : radius)
    }
    unsafe fn appendBezierPathWithCGGlyph_inFont_(&self, glyph: CGGlyph, font: NSFont)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithCGGlyph : glyph, inFont : font)
    }
    unsafe fn appendBezierPathWithCGGlyphs_count_inFont_(
        &self,
        glyphs: *const CGGlyph,
        count: NSInteger,
        font: NSFont,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithCGGlyphs : glyphs, count : count, inFont : font)
    }
    unsafe fn appendBezierPathWithRoundedRect_xRadius_yRadius_(
        &self,
        rect: NSRect,
        xRadius: CGFloat,
        yRadius: CGFloat,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, appendBezierPathWithRoundedRect : rect, xRadius : xRadius, yRadius : yRadius)
    }
    unsafe fn containsPoint_(&self, point: NSPoint) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, containsPoint : point)
    }
    unsafe fn CGPath(&self) -> CGPathRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGPath)
    }
    unsafe fn setCGPath_(&self, CGPath: CGPathRef)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCGPath : CGPath)
    }
    unsafe fn lineWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineWidth)
    }
    unsafe fn setLineWidth_(&self, lineWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineWidth : lineWidth)
    }
    unsafe fn lineCapStyle(&self) -> NSLineCapStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineCapStyle)
    }
    unsafe fn setLineCapStyle_(&self, lineCapStyle: NSLineCapStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineCapStyle : lineCapStyle)
    }
    unsafe fn lineJoinStyle(&self) -> NSLineJoinStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineJoinStyle)
    }
    unsafe fn setLineJoinStyle_(&self, lineJoinStyle: NSLineJoinStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineJoinStyle : lineJoinStyle)
    }
    unsafe fn windingRule(&self) -> NSWindingRule
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, windingRule)
    }
    unsafe fn setWindingRule_(&self, windingRule: NSWindingRule)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWindingRule : windingRule)
    }
    unsafe fn miterLimit(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, miterLimit)
    }
    unsafe fn setMiterLimit_(&self, miterLimit: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMiterLimit : miterLimit)
    }
    unsafe fn flatness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flatness)
    }
    unsafe fn setFlatness_(&self, flatness: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFlatness : flatness)
    }
    unsafe fn bezierPathByFlatteningPath(&self) -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezierPathByFlatteningPath)
    }
    unsafe fn bezierPathByReversingPath(&self) -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezierPathByReversingPath)
    }
    unsafe fn isEmpty(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEmpty)
    }
    unsafe fn currentPoint(&self) -> NSPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentPoint)
    }
    unsafe fn controlPointBounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlPointBounds)
    }
    unsafe fn bounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bounds)
    }
    unsafe fn elementCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, elementCount)
    }
    unsafe fn bezierPath() -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), bezierPath)
    }
    unsafe fn bezierPathWithRect_(rect: NSRect) -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), bezierPathWithRect : rect)
    }
    unsafe fn bezierPathWithOvalInRect_(rect: NSRect) -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), bezierPathWithOvalInRect : rect)
    }
    unsafe fn bezierPathWithRoundedRect_xRadius_yRadius_(
        rect: NSRect,
        xRadius: CGFloat,
        yRadius: CGFloat,
    ) -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), bezierPathWithRoundedRect : rect, xRadius : xRadius, yRadius : yRadius)
    }
    unsafe fn bezierPathWithCGPath_(cgPath: CGPathRef) -> NSBezierPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), bezierPathWithCGPath : cgPath)
    }
    unsafe fn fillRect_(rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), fillRect : rect)
    }
    unsafe fn strokeRect_(rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), strokeRect : rect)
    }
    unsafe fn clipRect_(rect: NSRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), clipRect : rect)
    }
    unsafe fn strokeLineFromPoint_toPoint_(point1: NSPoint, point2: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), strokeLineFromPoint : point1, toPoint : point2)
    }
    unsafe fn drawPackedGlyphs_atPoint_(packedGlyphs: *const ::std::os::raw::c_char, point: NSPoint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), drawPackedGlyphs : packedGlyphs, atPoint : point)
    }
    unsafe fn defaultMiterLimit() -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), defaultMiterLimit)
    }
    unsafe fn setDefaultMiterLimit_(defaultMiterLimit: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), setDefaultMiterLimit : defaultMiterLimit)
    }
    unsafe fn defaultFlatness() -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), defaultFlatness)
    }
    unsafe fn setDefaultFlatness_(defaultFlatness: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), setDefaultFlatness : defaultFlatness)
    }
    unsafe fn defaultWindingRule() -> NSWindingRule
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), defaultWindingRule)
    }
    unsafe fn setDefaultWindingRule_(defaultWindingRule: NSWindingRule)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), setDefaultWindingRule : defaultWindingRule)
    }
    unsafe fn defaultLineCapStyle() -> NSLineCapStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), defaultLineCapStyle)
    }
    unsafe fn setDefaultLineCapStyle_(defaultLineCapStyle: NSLineCapStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), setDefaultLineCapStyle : defaultLineCapStyle)
    }
    unsafe fn defaultLineJoinStyle() -> NSLineJoinStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), defaultLineJoinStyle)
    }
    unsafe fn setDefaultLineJoinStyle_(defaultLineJoinStyle: NSLineJoinStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), setDefaultLineJoinStyle : defaultLineJoinStyle)
    }
    unsafe fn defaultLineWidth() -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), defaultLineWidth)
    }
    unsafe fn setDefaultLineWidth_(defaultLineWidth: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSBezierPath").unwrap(), setDefaultLineWidth : defaultLineWidth)
    }
}
impl NSBezierPath_NSBezierPathDeprecated for NSBezierPath {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPICTImageRep(pub id);
impl std::ops::Deref for NSPICTImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPICTImageRep {}
impl NSPICTImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPICTImageRep").unwrap(), alloc) })
    }
}
impl INSImageRep for NSPICTImageRep {}
impl PNSCopying for NSPICTImageRep {}
impl PNSCoding for NSPICTImageRep {}
impl std::convert::TryFrom<NSImageRep> for NSPICTImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSPICTImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPICTImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSPICTImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSPICTImageRep")
        }
    }
}
impl INSObject for NSPICTImageRep {}
impl PNSObject for NSPICTImageRep {}
impl INSPICTImageRep for NSPICTImageRep {}
pub trait INSPICTImageRep: Sized + std::ops::Deref {
    unsafe fn initWithData_(&self, pictData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : pictData)
    }
    unsafe fn PICTRepresentation(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PICTRepresentation)
    }
    unsafe fn boundingBox(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, boundingBox)
    }
    unsafe fn imageRepWithData_(pictData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPICTImageRep").unwrap(), imageRepWithData : pictData)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStatusBar(pub id);
impl std::ops::Deref for NSStatusBar {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStatusBar {}
impl NSStatusBar {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStatusBar").unwrap(), alloc) })
    }
}
impl INSObject for NSStatusBar {}
impl PNSObject for NSStatusBar {}
impl std::convert::TryFrom<NSObject> for NSStatusBar {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSStatusBar, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStatusBar").unwrap()) };
        if is_kind_of {
            Ok(NSStatusBar(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSStatusBar")
        }
    }
}
impl INSStatusBar for NSStatusBar {}
pub trait INSStatusBar: Sized + std::ops::Deref {
    unsafe fn statusItemWithLength_(&self, length: CGFloat) -> NSStatusItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, statusItemWithLength : length)
    }
    unsafe fn removeStatusItem_(&self, item: NSStatusItem)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeStatusItem : item)
    }
    unsafe fn isVertical(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVertical)
    }
    unsafe fn thickness(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, thickness)
    }
    unsafe fn systemStatusBar() -> NSStatusBar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStatusBar").unwrap(), systemStatusBar)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStatusBarButton(pub id);
impl std::ops::Deref for NSStatusBarButton {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStatusBarButton {}
impl NSStatusBarButton {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStatusBarButton").unwrap(), alloc) })
    }
}
impl INSButton for NSStatusBarButton {}
impl PNSUserInterfaceValidations for NSStatusBarButton {}
impl PNSAccessibilityButton for NSStatusBarButton {}
impl PNSUserInterfaceCompression for NSStatusBarButton {}
impl std::convert::TryFrom<NSButton> for NSStatusBarButton {
    type Error = &'static str;
    fn try_from(parent: NSButton) -> Result<NSStatusBarButton, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStatusBarButton").unwrap()) };
        if is_kind_of {
            Ok(NSStatusBarButton(parent.0))
        } else {
            Err("This NSButton cannot be downcasted to NSStatusBarButton")
        }
    }
}
impl INSControl for NSStatusBarButton {}
impl INSView for NSStatusBarButton {}
impl PNSAnimatablePropertyContainer for NSStatusBarButton {}
impl PNSUserInterfaceItemIdentification for NSStatusBarButton {}
impl PNSDraggingDestination for NSStatusBarButton {}
impl PNSAppearanceCustomization for NSStatusBarButton {}
impl PNSAccessibilityElement for NSStatusBarButton {}
impl PNSAccessibility for NSStatusBarButton {}
impl INSResponder for NSStatusBarButton {}
impl PNSCoding for NSStatusBarButton {}
impl INSObject for NSStatusBarButton {}
impl PNSObject for NSStatusBarButton {}
impl INSStatusBarButton for NSStatusBarButton {}
pub trait INSStatusBarButton: Sized + std::ops::Deref {
    unsafe fn appearsDisabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, appearsDisabled)
    }
    unsafe fn setAppearsDisabled_(&self, appearsDisabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAppearsDisabled : appearsDisabled)
    }
}
pub type NSStatusItemBehavior = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStatusItem(pub id);
impl std::ops::Deref for NSStatusItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStatusItem {}
impl NSStatusItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStatusItem").unwrap(), alloc) })
    }
}
impl INSObject for NSStatusItem {}
impl PNSObject for NSStatusItem {}
impl std::convert::TryFrom<NSObject> for NSStatusItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSStatusItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStatusItem").unwrap()) };
        if is_kind_of {
            Ok(NSStatusItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSStatusItem")
        }
    }
}
impl INSStatusItem for NSStatusItem {}
pub trait INSStatusItem: Sized + std::ops::Deref {
    unsafe fn statusBar(&self) -> NSStatusBar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, statusBar)
    }
    unsafe fn length(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, length)
    }
    unsafe fn setLength_(&self, length: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLength : length)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn button(&self) -> NSStatusBarButton
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, button)
    }
    unsafe fn behavior(&self) -> NSStatusItemBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, behavior)
    }
    unsafe fn setBehavior_(&self, behavior: NSStatusItemBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBehavior : behavior)
    }
    unsafe fn isVisible(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isVisible)
    }
    unsafe fn setVisible_(&self, visible: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVisible : visible)
    }
    unsafe fn autosaveName(&self) -> NSStatusItemAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autosaveName)
    }
    unsafe fn setAutosaveName_(&self, autosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutosaveName : autosaveName)
    }
}
impl NSStatusItem_NSStatusItemDeprecated for NSStatusItem {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSound(pub id);
impl std::ops::Deref for NSSound {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSound {}
impl NSSound {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSound").unwrap(), alloc) })
    }
}
impl PNSCopying for NSSound {}
impl PNSSecureCoding for NSSound {}
impl PNSPasteboardReading for NSSound {}
impl PNSPasteboardWriting for NSSound {}
impl INSObject for NSSound {}
impl PNSObject for NSSound {}
impl std::convert::TryFrom<NSObject> for NSSound {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSSound, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSound").unwrap()) };
        if is_kind_of {
            Ok(NSSound(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSSound")
        }
    }
}
impl INSSound for NSSound {}
pub trait INSSound: Sized + std::ops::Deref {
    unsafe fn initWithContentsOfURL_byReference_(&self, url: NSURL, byRef: BOOL) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentsOfURL : url, byReference : byRef)
    }
    unsafe fn initWithContentsOfFile_byReference_(
        &self,
        path: NSString,
        byRef: BOOL,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentsOfFile : path, byReference : byRef)
    }
    unsafe fn initWithData_(&self, data: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : data)
    }
    unsafe fn setName_(&self, string: NSString) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setName : string)
    }
    unsafe fn initWithPasteboard_(&self, pasteboard: NSPasteboard) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPasteboard : pasteboard)
    }
    unsafe fn writeToPasteboard_(&self, pasteboard: NSPasteboard)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToPasteboard : pasteboard)
    }
    unsafe fn play(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, play)
    }
    unsafe fn pause(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pause)
    }
    unsafe fn resume(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resume)
    }
    unsafe fn stop(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stop)
    }
    unsafe fn setChannelMapping_(&self, channelMapping: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setChannelMapping : channelMapping)
    }
    unsafe fn channelMapping(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, channelMapping)
    }
    unsafe fn name(&self) -> NSSoundName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, name)
    }
    unsafe fn isPlaying(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isPlaying)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn duration(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, duration)
    }
    unsafe fn volume(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, volume)
    }
    unsafe fn setVolume_(&self, volume: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVolume : volume)
    }
    unsafe fn currentTime(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentTime)
    }
    unsafe fn setCurrentTime_(&self, currentTime: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCurrentTime : currentTime)
    }
    unsafe fn loops(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, loops)
    }
    unsafe fn setLoops_(&self, loops: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLoops : loops)
    }
    unsafe fn playbackDeviceIdentifier(&self) -> NSSoundPlaybackDeviceIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, playbackDeviceIdentifier)
    }
    unsafe fn setPlaybackDeviceIdentifier_(&self, playbackDeviceIdentifier: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaybackDeviceIdentifier : playbackDeviceIdentifier)
    }
    unsafe fn soundNamed_(name: NSString) -> NSSound
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSound").unwrap(), soundNamed : name)
    }
    unsafe fn canInitWithPasteboard_(pasteboard: NSPasteboard) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSound").unwrap(), canInitWithPasteboard : pasteboard)
    }
    unsafe fn soundUnfilteredTypes() -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSSound").unwrap(), soundUnfilteredTypes)
    }
}
impl NSSound_NSDeprecated for NSSound {}
pub trait PNSSoundDelegate: Sized + std::ops::Deref {
    unsafe fn sound_didFinishPlaying_(&self, sound: NSSound, flag: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sound : sound, didFinishPlaying : flag)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMovie(pub id);
impl std::ops::Deref for NSMovie {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMovie {}
impl NSMovie {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMovie").unwrap(), alloc) })
    }
}
impl PNSCoding for NSMovie {}
impl INSObject for NSMovie {}
impl PNSObject for NSMovie {}
impl std::convert::TryFrom<NSObject> for NSMovie {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSMovie, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMovie").unwrap()) };
        if is_kind_of {
            Ok(NSMovie(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSMovie")
        }
    }
}
impl INSMovie for NSMovie {}
pub trait INSMovie: Sized + std::ops::Deref {
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithMovie_(&self, movie: QTMovie) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMovie : movie)
    }
    unsafe fn QTMovie(&self) -> QTMovie
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, QTMovie)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPDFImageRep(pub id);
impl std::ops::Deref for NSPDFImageRep {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPDFImageRep {}
impl NSPDFImageRep {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPDFImageRep").unwrap(), alloc) })
    }
}
impl INSImageRep for NSPDFImageRep {}
impl PNSCopying for NSPDFImageRep {}
impl PNSCoding for NSPDFImageRep {}
impl std::convert::TryFrom<NSImageRep> for NSPDFImageRep {
    type Error = &'static str;
    fn try_from(parent: NSImageRep) -> Result<NSPDFImageRep, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPDFImageRep").unwrap()) };
        if is_kind_of {
            Ok(NSPDFImageRep(parent.0))
        } else {
            Err("This NSImageRep cannot be downcasted to NSPDFImageRep")
        }
    }
}
impl INSObject for NSPDFImageRep {}
impl PNSObject for NSPDFImageRep {}
impl INSPDFImageRep for NSPDFImageRep {}
pub trait INSPDFImageRep: Sized + std::ops::Deref {
    unsafe fn initWithData_(&self, pdfData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : pdfData)
    }
    unsafe fn PDFRepresentation(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, PDFRepresentation)
    }
    unsafe fn bounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bounds)
    }
    unsafe fn currentPage(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentPage)
    }
    unsafe fn setCurrentPage_(&self, currentPage: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCurrentPage : currentPage)
    }
    unsafe fn pageCount(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pageCount)
    }
    unsafe fn imageRepWithData_(pdfData: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPDFImageRep").unwrap(), imageRepWithData : pdfData)
    }
}
pub type NSDrawerState = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDrawer(pub id);
impl std::ops::Deref for NSDrawer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDrawer {}
impl NSDrawer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDrawer").unwrap(), alloc) })
    }
}
impl PNSAccessibilityElement for NSDrawer {}
impl PNSAccessibility for NSDrawer {}
impl INSResponder for NSDrawer {}
impl PNSCoding for NSDrawer {}
impl std::convert::TryFrom<NSResponder> for NSDrawer {
    type Error = &'static str;
    fn try_from(parent: NSResponder) -> Result<NSDrawer, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDrawer").unwrap()) };
        if is_kind_of {
            Ok(NSDrawer(parent.0))
        } else {
            Err("This NSResponder cannot be downcasted to NSDrawer")
        }
    }
}
impl INSObject for NSDrawer {}
impl PNSObject for NSDrawer {}
impl INSDrawer for NSDrawer {}
pub trait INSDrawer: Sized + std::ops::Deref {
    unsafe fn initWithContentSize_preferredEdge_(
        &self,
        contentSize: NSSize,
        edge: NSRectEdge,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContentSize : contentSize, preferredEdge : edge)
    }
    unsafe fn open(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, open)
    }
    unsafe fn openOnEdge_(&self, edge: NSRectEdge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openOnEdge : edge)
    }
    unsafe fn close(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, close)
    }
    unsafe fn open_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, open : sender)
    }
    unsafe fn close_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, close : sender)
    }
    unsafe fn toggle_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, toggle : sender)
    }
    unsafe fn parentWindow(&self) -> NSWindow
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parentWindow)
    }
    unsafe fn setParentWindow_(&self, parentWindow: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setParentWindow : parentWindow)
    }
    unsafe fn contentView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentView)
    }
    unsafe fn setContentView_(&self, contentView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentView : contentView)
    }
    unsafe fn preferredEdge(&self) -> NSRectEdge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredEdge)
    }
    unsafe fn setPreferredEdge_(&self, preferredEdge: NSRectEdge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredEdge : preferredEdge)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn state(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn edge(&self) -> NSRectEdge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, edge)
    }
    unsafe fn contentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentSize)
    }
    unsafe fn setContentSize_(&self, contentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentSize : contentSize)
    }
    unsafe fn minContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minContentSize)
    }
    unsafe fn setMinContentSize_(&self, minContentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinContentSize : minContentSize)
    }
    unsafe fn maxContentSize(&self) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxContentSize)
    }
    unsafe fn setMaxContentSize_(&self, maxContentSize: NSSize)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxContentSize : maxContentSize)
    }
    unsafe fn leadingOffset(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leadingOffset)
    }
    unsafe fn setLeadingOffset_(&self, leadingOffset: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLeadingOffset : leadingOffset)
    }
    unsafe fn trailingOffset(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trailingOffset)
    }
    unsafe fn setTrailingOffset_(&self, trailingOffset: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTrailingOffset : trailingOffset)
    }
}
impl NSWindow_NSDrawers for NSWindow {}
pub trait PNSDrawerDelegate: Sized + std::ops::Deref {
    unsafe fn drawerShouldOpen_(&self, sender: NSDrawer) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerShouldOpen : sender)
    }
    unsafe fn drawerShouldClose_(&self, sender: NSDrawer) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerShouldClose : sender)
    }
    unsafe fn drawerWillResizeContents_toSize_(
        &self,
        sender: NSDrawer,
        contentSize: NSSize,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerWillResizeContents : sender, toSize : contentSize)
    }
    unsafe fn drawerWillOpen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerWillOpen : notification)
    }
    unsafe fn drawerDidOpen_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerDidOpen : notification)
    }
    unsafe fn drawerWillClose_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerWillClose : notification)
    }
    unsafe fn drawerDidClose_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawerDidClose : notification)
    }
}
pub type NSOpenGLGlobalOption = u32;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOpenGLPixelFormat(pub id);
impl std::ops::Deref for NSOpenGLPixelFormat {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOpenGLPixelFormat {}
impl NSOpenGLPixelFormat {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLPixelFormat").unwrap(), alloc) })
    }
}
impl PNSCoding for NSOpenGLPixelFormat {}
impl INSObject for NSOpenGLPixelFormat {}
impl PNSObject for NSOpenGLPixelFormat {}
impl std::convert::TryFrom<NSObject> for NSOpenGLPixelFormat {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSOpenGLPixelFormat, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOpenGLPixelFormat").unwrap()) };
        if is_kind_of {
            Ok(NSOpenGLPixelFormat(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSOpenGLPixelFormat")
        }
    }
}
impl INSOpenGLPixelFormat for NSOpenGLPixelFormat {}
pub trait INSOpenGLPixelFormat: Sized + std::ops::Deref {
    unsafe fn initWithCGLPixelFormatObj_(&self, format: CGLPixelFormatObj) -> NSOpenGLPixelFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCGLPixelFormatObj : format)
    }
    unsafe fn initWithAttributes_(
        &self,
        attribs: *const NSOpenGLPixelFormatAttribute,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAttributes : attribs)
    }
    unsafe fn initWithData_(&self, attribs: NSData) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithData : attribs)
    }
    unsafe fn attributes(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributes)
    }
    unsafe fn setAttributes_(&self, attribs: NSData)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributes : attribs)
    }
    unsafe fn getValues_forAttribute_forVirtualScreen_(
        &self,
        vals: *mut GLint,
        attrib: NSOpenGLPixelFormatAttribute,
        screen: GLint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getValues : vals, forAttribute : attrib, forVirtualScreen : screen)
    }
    unsafe fn numberOfVirtualScreens(&self) -> GLint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfVirtualScreens)
    }
    unsafe fn CGLPixelFormatObj(&self) -> CGLPixelFormatObj
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGLPixelFormatObj)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOpenGLPixelBuffer(pub id);
impl std::ops::Deref for NSOpenGLPixelBuffer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOpenGLPixelBuffer {}
impl NSOpenGLPixelBuffer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLPixelBuffer").unwrap(), alloc) })
    }
}
impl INSObject for NSOpenGLPixelBuffer {}
impl PNSObject for NSOpenGLPixelBuffer {}
impl std::convert::TryFrom<NSObject> for NSOpenGLPixelBuffer {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSOpenGLPixelBuffer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOpenGLPixelBuffer").unwrap()) };
        if is_kind_of {
            Ok(NSOpenGLPixelBuffer(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSOpenGLPixelBuffer")
        }
    }
}
impl INSOpenGLPixelBuffer for NSOpenGLPixelBuffer {}
pub trait INSOpenGLPixelBuffer: Sized + std::ops::Deref {
    unsafe fn initWithTextureTarget_textureInternalFormat_textureMaxMipMapLevel_pixelsWide_pixelsHigh_(
        &self,
        target: GLenum,
        format: GLenum,
        maxLevel: GLint,
        pixelsWide: GLsizei,
        pixelsHigh: GLsizei,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTextureTarget : target, textureInternalFormat : format, textureMaxMipMapLevel : maxLevel, pixelsWide : pixelsWide, pixelsHigh : pixelsHigh)
    }
    unsafe fn initWithCGLPBufferObj_(&self, pbuffer: CGLPBufferObj) -> NSOpenGLPixelBuffer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCGLPBufferObj : pbuffer)
    }
    unsafe fn CGLPBufferObj(&self) -> CGLPBufferObj
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGLPBufferObj)
    }
    unsafe fn pixelsWide(&self) -> GLsizei
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pixelsWide)
    }
    unsafe fn pixelsHigh(&self) -> GLsizei
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pixelsHigh)
    }
    unsafe fn textureTarget(&self) -> GLenum
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textureTarget)
    }
    unsafe fn textureInternalFormat(&self) -> GLenum
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textureInternalFormat)
    }
    unsafe fn textureMaxMipMapLevel(&self) -> GLint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textureMaxMipMapLevel)
    }
}
pub type NSOpenGLContextParameter = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOpenGLContext(pub id);
impl std::ops::Deref for NSOpenGLContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOpenGLContext {}
impl NSOpenGLContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLContext").unwrap(), alloc) })
    }
}
impl PNSLocking for NSOpenGLContext {}
impl INSObject for NSOpenGLContext {}
impl PNSObject for NSOpenGLContext {}
impl std::convert::TryFrom<NSObject> for NSOpenGLContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSOpenGLContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOpenGLContext").unwrap()) };
        if is_kind_of {
            Ok(NSOpenGLContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSOpenGLContext")
        }
    }
}
impl INSOpenGLContext for NSOpenGLContext {}
pub trait INSOpenGLContext: Sized + std::ops::Deref {
    unsafe fn initWithFormat_shareContext_(
        &self,
        format: NSOpenGLPixelFormat,
        share: NSOpenGLContext,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFormat : format, shareContext : share)
    }
    unsafe fn initWithCGLContextObj_(&self, context: CGLContextObj) -> NSOpenGLContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCGLContextObj : context)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn setFullScreen(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, setFullScreen)
    }
    unsafe fn setOffScreen_width_height_rowbytes_(
        &self,
        baseaddr: *mut ::std::os::raw::c_void,
        width: GLsizei,
        height: GLsizei,
        rowbytes: GLint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOffScreen : baseaddr, width : width, height : height, rowbytes : rowbytes)
    }
    unsafe fn clearDrawable(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clearDrawable)
    }
    unsafe fn update(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, update)
    }
    unsafe fn flushBuffer(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flushBuffer)
    }
    unsafe fn makeCurrentContext(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, makeCurrentContext)
    }
    unsafe fn copyAttributesFromContext_withMask_(&self, context: NSOpenGLContext, mask: GLbitfield)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, copyAttributesFromContext : context, withMask : mask)
    }
    unsafe fn setValues_forParameter_(&self, vals: *const GLint, param: NSOpenGLContextParameter)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValues : vals, forParameter : param)
    }
    unsafe fn getValues_forParameter_(&self, vals: *mut GLint, param: NSOpenGLContextParameter)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getValues : vals, forParameter : param)
    }
    unsafe fn createTexture_fromView_internalFormat_(
        &self,
        target: GLenum,
        view: NSView,
        format: GLenum,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, createTexture : target, fromView : view, internalFormat : format)
    }
    unsafe fn pixelFormat(&self) -> NSOpenGLPixelFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pixelFormat)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn currentVirtualScreen(&self) -> GLint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentVirtualScreen)
    }
    unsafe fn setCurrentVirtualScreen_(&self, currentVirtualScreen: GLint)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCurrentVirtualScreen : currentVirtualScreen)
    }
    unsafe fn CGLContextObj(&self) -> CGLContextObj
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, CGLContextObj)
    }
    unsafe fn clearCurrentContext()
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLContext").unwrap(), clearCurrentContext)
    }
    unsafe fn currentContext() -> NSOpenGLContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLContext").unwrap(), currentContext)
    }
}
impl NSOpenGLContext_NSOpenGLPixelBuffer for NSOpenGLContext {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOpenGLLayer(pub id);
impl std::ops::Deref for NSOpenGLLayer {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOpenGLLayer {}
impl NSOpenGLLayer {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLLayer").unwrap(), alloc) })
    }
}
impl ICAOpenGLLayer for NSOpenGLLayer {}
impl std::convert::TryFrom<CAOpenGLLayer> for NSOpenGLLayer {
    type Error = &'static str;
    fn try_from(parent: CAOpenGLLayer) -> Result<NSOpenGLLayer, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOpenGLLayer").unwrap()) };
        if is_kind_of {
            Ok(NSOpenGLLayer(parent.0))
        } else {
            Err("This CAOpenGLLayer cannot be downcasted to NSOpenGLLayer")
        }
    }
}
impl ICALayer for NSOpenGLLayer {}
impl PNSSecureCoding for NSOpenGLLayer {}
impl PCAMediaTiming for NSOpenGLLayer {}
impl INSObject for NSOpenGLLayer {}
impl PNSObject for NSOpenGLLayer {}
impl INSOpenGLLayer for NSOpenGLLayer {}
pub trait INSOpenGLLayer: Sized + std::ops::Deref {
    unsafe fn openGLPixelFormatForDisplayMask_(&self, mask: u32) -> NSOpenGLPixelFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openGLPixelFormatForDisplayMask : mask)
    }
    unsafe fn openGLContextForPixelFormat_(
        &self,
        pixelFormat: NSOpenGLPixelFormat,
    ) -> NSOpenGLContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, openGLContextForPixelFormat : pixelFormat)
    }
    unsafe fn canDrawInOpenGLContext_pixelFormat_forLayerTime_displayTime_(
        &self,
        context: NSOpenGLContext,
        pixelFormat: NSOpenGLPixelFormat,
        t: CFTimeInterval,
        ts: *const CVTimeStamp,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, canDrawInOpenGLContext : context, pixelFormat : pixelFormat, forLayerTime : t, displayTime : ts)
    }
    unsafe fn drawInOpenGLContext_pixelFormat_forLayerTime_displayTime_(
        &self,
        context: NSOpenGLContext,
        pixelFormat: NSOpenGLPixelFormat,
        t: CFTimeInterval,
        ts: *const CVTimeStamp,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawInOpenGLContext : context, pixelFormat : pixelFormat, forLayerTime : t, displayTime : ts)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn openGLPixelFormat(&self) -> NSOpenGLPixelFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, openGLPixelFormat)
    }
    unsafe fn setOpenGLPixelFormat_(&self, openGLPixelFormat: NSOpenGLPixelFormat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOpenGLPixelFormat : openGLPixelFormat)
    }
    unsafe fn openGLContext(&self) -> NSOpenGLContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, openGLContext)
    }
    unsafe fn setOpenGLContext_(&self, openGLContext: NSOpenGLContext)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOpenGLContext : openGLContext)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSOpenGLView(pub id);
impl std::ops::Deref for NSOpenGLView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSOpenGLView {}
impl NSOpenGLView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLView").unwrap(), alloc) })
    }
}
impl INSView for NSOpenGLView {}
impl PNSAnimatablePropertyContainer for NSOpenGLView {}
impl PNSUserInterfaceItemIdentification for NSOpenGLView {}
impl PNSDraggingDestination for NSOpenGLView {}
impl PNSAppearanceCustomization for NSOpenGLView {}
impl PNSAccessibilityElement for NSOpenGLView {}
impl PNSAccessibility for NSOpenGLView {}
impl std::convert::TryFrom<NSView> for NSOpenGLView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSOpenGLView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSOpenGLView").unwrap()) };
        if is_kind_of {
            Ok(NSOpenGLView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSOpenGLView")
        }
    }
}
impl INSResponder for NSOpenGLView {}
impl PNSCoding for NSOpenGLView {}
impl INSObject for NSOpenGLView {}
impl PNSObject for NSOpenGLView {}
impl INSOpenGLView for NSOpenGLView {}
pub trait INSOpenGLView: Sized + std::ops::Deref {
    unsafe fn initWithFrame_pixelFormat_(
        &self,
        frameRect: NSRect,
        format: NSOpenGLPixelFormat,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithFrame : frameRect, pixelFormat : format)
    }
    unsafe fn clearGLContext(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clearGLContext)
    }
    unsafe fn update(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, update)
    }
    unsafe fn reshape(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reshape)
    }
    unsafe fn prepareOpenGL(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prepareOpenGL)
    }
    unsafe fn openGLContext(&self) -> NSOpenGLContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, openGLContext)
    }
    unsafe fn setOpenGLContext_(&self, openGLContext: NSOpenGLContext)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setOpenGLContext : openGLContext)
    }
    unsafe fn pixelFormat(&self) -> NSOpenGLPixelFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pixelFormat)
    }
    unsafe fn setPixelFormat_(&self, pixelFormat: NSOpenGLPixelFormat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPixelFormat : pixelFormat)
    }
    unsafe fn wantsBestResolutionOpenGLSurface(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsBestResolutionOpenGLSurface)
    }
    unsafe fn setWantsBestResolutionOpenGLSurface_(&self, wantsBestResolutionOpenGLSurface: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWantsBestResolutionOpenGLSurface : wantsBestResolutionOpenGLSurface)
    }
    unsafe fn wantsExtendedDynamicRangeOpenGLSurface(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, wantsExtendedDynamicRangeOpenGLSurface)
    }
    unsafe fn setWantsExtendedDynamicRangeOpenGLSurface_(
        &self,
        wantsExtendedDynamicRangeOpenGLSurface: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWantsExtendedDynamicRangeOpenGLSurface : wantsExtendedDynamicRangeOpenGLSurface)
    }
    unsafe fn defaultPixelFormat() -> NSOpenGLPixelFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSOpenGLView").unwrap(), defaultPixelFormat)
    }
}
impl NSView_NSOpenGLSurfaceResolution for NSView {}
impl NSView_NSExtendedDynamicRange for NSView {}
impl NSApplication_NSScripting for NSApplication {}
impl NSDocument_NSScripting for NSDocument {}
pub type NSToolbarItemGroupSelectionMode = NSInteger;
pub type NSToolbarItemGroupControlRepresentation = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSToolbarItemGroup(pub id);
impl std::ops::Deref for NSToolbarItemGroup {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSToolbarItemGroup {}
impl NSToolbarItemGroup {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSToolbarItemGroup").unwrap(), alloc) })
    }
}
impl INSToolbarItem for NSToolbarItemGroup {}
impl PNSCopying for NSToolbarItemGroup {}
impl std::convert::TryFrom<NSToolbarItem> for NSToolbarItemGroup {
    type Error = &'static str;
    fn try_from(parent: NSToolbarItem) -> Result<NSToolbarItemGroup, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSToolbarItemGroup").unwrap()) };
        if is_kind_of {
            Ok(NSToolbarItemGroup(parent.0))
        } else {
            Err("This NSToolbarItem cannot be downcasted to NSToolbarItemGroup")
        }
    }
}
impl INSObject for NSToolbarItemGroup {}
impl PNSObject for NSToolbarItemGroup {}
impl INSToolbarItemGroup for NSToolbarItemGroup {}
pub trait INSToolbarItemGroup: Sized + std::ops::Deref {
    unsafe fn setSelected_atIndex_(&self, selected: BOOL, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelected : selected, atIndex : index)
    }
    unsafe fn isSelectedAtIndex_(&self, index: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isSelectedAtIndex : index)
    }
    unsafe fn subitems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subitems)
    }
    unsafe fn setSubitems_(&self, subitems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubitems : subitems)
    }
    unsafe fn controlRepresentation(&self) -> NSToolbarItemGroupControlRepresentation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlRepresentation)
    }
    unsafe fn setControlRepresentation_(
        &self,
        controlRepresentation: NSToolbarItemGroupControlRepresentation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlRepresentation : controlRepresentation)
    }
    unsafe fn selectionMode(&self) -> NSToolbarItemGroupSelectionMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionMode)
    }
    unsafe fn setSelectionMode_(&self, selectionMode: NSToolbarItemGroupSelectionMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionMode : selectionMode)
    }
    unsafe fn selectedIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedIndex)
    }
    unsafe fn setSelectedIndex_(&self, selectedIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedIndex : selectedIndex)
    }
    unsafe fn groupWithItemIdentifier_titles_selectionMode_labels_target_action_(
        itemIdentifier: NSString,
        titles: NSArray,
        selectionMode: NSToolbarItemGroupSelectionMode,
        labels: NSArray,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSToolbarItemGroup").unwrap(), groupWithItemIdentifier : itemIdentifier, titles : titles, selectionMode : selectionMode, labels : labels, target : target, action : action)
    }
    unsafe fn groupWithItemIdentifier_images_selectionMode_labels_target_action_(
        itemIdentifier: NSString,
        images: NSArray,
        selectionMode: NSToolbarItemGroupSelectionMode,
        labels: NSArray,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSToolbarItemGroup").unwrap(), groupWithItemIdentifier : itemIdentifier, images : images, selectionMode : selectionMode, labels : labels, target : target, action : action)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSMenuToolbarItem(pub id);
impl std::ops::Deref for NSMenuToolbarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSMenuToolbarItem {}
impl NSMenuToolbarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSMenuToolbarItem").unwrap(), alloc) })
    }
}
impl INSToolbarItem for NSMenuToolbarItem {}
impl PNSCopying for NSMenuToolbarItem {}
impl std::convert::TryFrom<NSToolbarItem> for NSMenuToolbarItem {
    type Error = &'static str;
    fn try_from(parent: NSToolbarItem) -> Result<NSMenuToolbarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSMenuToolbarItem").unwrap()) };
        if is_kind_of {
            Ok(NSMenuToolbarItem(parent.0))
        } else {
            Err("This NSToolbarItem cannot be downcasted to NSMenuToolbarItem")
        }
    }
}
impl INSObject for NSMenuToolbarItem {}
impl PNSObject for NSMenuToolbarItem {}
impl INSMenuToolbarItem for NSMenuToolbarItem {}
pub trait INSMenuToolbarItem: Sized + std::ops::Deref {
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
    unsafe fn showsIndicator(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, showsIndicator)
    }
    unsafe fn setShowsIndicator_(&self, showsIndicator: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setShowsIndicator : showsIndicator)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSharingServicePickerToolbarItem(pub id);
impl std::ops::Deref for NSSharingServicePickerToolbarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSharingServicePickerToolbarItem {}
impl NSSharingServicePickerToolbarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSharingServicePickerToolbarItem").unwrap(), alloc) })
    }
}
impl INSToolbarItem for NSSharingServicePickerToolbarItem {}
impl PNSCopying for NSSharingServicePickerToolbarItem {}
impl std::convert::TryFrom<NSToolbarItem> for NSSharingServicePickerToolbarItem {
    type Error = &'static str;
    fn try_from(parent: NSToolbarItem) -> Result<NSSharingServicePickerToolbarItem, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSharingServicePickerToolbarItem").unwrap())
        };
        if is_kind_of {
            Ok(NSSharingServicePickerToolbarItem(parent.0))
        } else {
            Err("This NSToolbarItem cannot be downcasted to NSSharingServicePickerToolbarItem")
        }
    }
}
impl INSObject for NSSharingServicePickerToolbarItem {}
impl PNSObject for NSSharingServicePickerToolbarItem {}
impl INSSharingServicePickerToolbarItem for NSSharingServicePickerToolbarItem {}
pub trait INSSharingServicePickerToolbarItem: Sized + std::ops::Deref {
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
}
pub trait PNSSharingServicePickerToolbarItemDelegate: Sized + std::ops::Deref {
    unsafe fn itemsForSharingServicePickerToolbarItem_(
        &self,
        pickerToolbarItem: NSSharingServicePickerToolbarItem,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, itemsForSharingServicePickerToolbarItem : pickerToolbarItem)
    }
}
impl NSWindow_NSScripting for NSWindow {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStepper(pub id);
impl std::ops::Deref for NSStepper {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStepper {}
impl NSStepper {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStepper").unwrap(), alloc) })
    }
}
impl PNSAccessibilityStepper for NSStepper {}
impl INSControl for NSStepper {}
impl std::convert::TryFrom<NSControl> for NSStepper {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSStepper, Self::Error> {
        let is_kind_of: bool = unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStepper").unwrap()) };
        if is_kind_of {
            Ok(NSStepper(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSStepper")
        }
    }
}
impl INSView for NSStepper {}
impl PNSAnimatablePropertyContainer for NSStepper {}
impl PNSUserInterfaceItemIdentification for NSStepper {}
impl PNSDraggingDestination for NSStepper {}
impl PNSAppearanceCustomization for NSStepper {}
impl PNSAccessibilityElement for NSStepper {}
impl PNSAccessibility for NSStepper {}
impl INSResponder for NSStepper {}
impl PNSCoding for NSStepper {}
impl INSObject for NSStepper {}
impl PNSObject for NSStepper {}
impl INSStepper for NSStepper {}
pub trait INSStepper: Sized + std::ops::Deref {
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn increment(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, increment)
    }
    unsafe fn setIncrement_(&self, increment: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncrement : increment)
    }
    unsafe fn valueWraps(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, valueWraps)
    }
    unsafe fn setValueWraps_(&self, valueWraps: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValueWraps : valueWraps)
    }
    unsafe fn autorepeat(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autorepeat)
    }
    unsafe fn setAutorepeat_(&self, autorepeat: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutorepeat : autorepeat)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStepperCell(pub id);
impl std::ops::Deref for NSStepperCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStepperCell {}
impl NSStepperCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStepperCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSStepperCell {}
impl std::convert::TryFrom<NSActionCell> for NSStepperCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSStepperCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStepperCell").unwrap()) };
        if is_kind_of {
            Ok(NSStepperCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSStepperCell")
        }
    }
}
impl INSCell for NSStepperCell {}
impl PNSCopying for NSStepperCell {}
impl PNSCoding for NSStepperCell {}
impl PNSUserInterfaceItemIdentification for NSStepperCell {}
impl PNSAccessibilityElement for NSStepperCell {}
impl PNSAccessibility for NSStepperCell {}
impl INSObject for NSStepperCell {}
impl PNSObject for NSStepperCell {}
impl INSStepperCell for NSStepperCell {}
pub trait INSStepperCell: Sized + std::ops::Deref {
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn increment(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, increment)
    }
    unsafe fn setIncrement_(&self, increment: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncrement : increment)
    }
    unsafe fn valueWraps(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, valueWraps)
    }
    unsafe fn setValueWraps_(&self, valueWraps: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValueWraps : valueWraps)
    }
    unsafe fn autorepeat(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, autorepeat)
    }
    unsafe fn setAutorepeat_(&self, autorepeat: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutorepeat : autorepeat)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSGlyphInfo(pub id);
impl std::ops::Deref for NSGlyphInfo {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSGlyphInfo {}
impl NSGlyphInfo {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSGlyphInfo").unwrap(), alloc) })
    }
}
impl PNSCopying for NSGlyphInfo {}
impl PNSSecureCoding for NSGlyphInfo {}
impl INSObject for NSGlyphInfo {}
impl PNSObject for NSGlyphInfo {}
impl std::convert::TryFrom<NSObject> for NSGlyphInfo {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSGlyphInfo, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSGlyphInfo").unwrap()) };
        if is_kind_of {
            Ok(NSGlyphInfo(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSGlyphInfo")
        }
    }
}
impl INSGlyphInfo for NSGlyphInfo {}
pub trait INSGlyphInfo: Sized + std::ops::Deref {
    unsafe fn glyphID(&self) -> CGGlyph
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, glyphID)
    }
    unsafe fn baseString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseString)
    }
    unsafe fn glyphInfoWithCGGlyph_forFont_baseString_(
        glyph: CGGlyph,
        font: NSFont,
        string: NSString,
    ) -> NSGlyphInfo
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSGlyphInfo").unwrap(), glyphInfoWithCGGlyph : glyph, forFont : font, baseString : string)
    }
}
pub type NSCharacterCollection = NSUInteger;
impl NSGlyphInfo_NSGlyphInfo_Deprecated for NSGlyphInfo {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTypesetter(pub id);
impl std::ops::Deref for NSTypesetter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTypesetter {}
impl NSTypesetter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTypesetter").unwrap(), alloc) })
    }
}
impl INSObject for NSTypesetter {}
impl PNSObject for NSTypesetter {}
impl std::convert::TryFrom<NSObject> for NSTypesetter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTypesetter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTypesetter").unwrap()) };
        if is_kind_of {
            Ok(NSTypesetter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTypesetter")
        }
    }
}
impl INSTypesetter for NSTypesetter {}
pub trait INSTypesetter: Sized + std::ops::Deref {
    unsafe fn substituteFontForFont_(&self, originalFont: NSFont) -> NSFont
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, substituteFontForFont : originalFont)
    }
    unsafe fn textTabForGlyphLocation_writingDirection_maxLocation_(
        &self,
        glyphLocation: CGFloat,
        direction: NSWritingDirection,
        maxLocation: CGFloat,
    ) -> NSTextTab
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textTabForGlyphLocation : glyphLocation, writingDirection : direction, maxLocation : maxLocation)
    }
    unsafe fn setParagraphGlyphRange_separatorGlyphRange_(
        &self,
        paragraphRange: NSRange,
        paragraphSeparatorRange: NSRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setParagraphGlyphRange : paragraphRange, separatorGlyphRange : paragraphSeparatorRange)
    }
    unsafe fn layoutParagraphAtPoint_(&self, lineFragmentOrigin: NSPointPointer) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutParagraphAtPoint : lineFragmentOrigin)
    }
    unsafe fn beginParagraph(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, beginParagraph)
    }
    unsafe fn endParagraph(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, endParagraph)
    }
    unsafe fn beginLineWithGlyphAtIndex_(&self, glyphIndex: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, beginLineWithGlyphAtIndex : glyphIndex)
    }
    unsafe fn endLineWithGlyphRange_(&self, lineGlyphRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, endLineWithGlyphRange : lineGlyphRange)
    }
    unsafe fn lineSpacingAfterGlyphAtIndex_withProposedLineFragmentRect_(
        &self,
        glyphIndex: NSUInteger,
        rect: NSRect,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lineSpacingAfterGlyphAtIndex : glyphIndex, withProposedLineFragmentRect : rect)
    }
    unsafe fn paragraphSpacingBeforeGlyphAtIndex_withProposedLineFragmentRect_(
        &self,
        glyphIndex: NSUInteger,
        rect: NSRect,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, paragraphSpacingBeforeGlyphAtIndex : glyphIndex, withProposedLineFragmentRect : rect)
    }
    unsafe fn paragraphSpacingAfterGlyphAtIndex_withProposedLineFragmentRect_(
        &self,
        glyphIndex: NSUInteger,
        rect: NSRect,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, paragraphSpacingAfterGlyphAtIndex : glyphIndex, withProposedLineFragmentRect : rect)
    }
    unsafe fn getLineFragmentRect_usedRect_forParagraphSeparatorGlyphRange_atProposedOrigin_(
        &self,
        lineFragmentRect: NSRectPointer,
        lineFragmentUsedRect: NSRectPointer,
        paragraphSeparatorGlyphRange: NSRange,
        lineOrigin: NSPoint,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, getLineFragmentRect : lineFragmentRect, usedRect : lineFragmentUsedRect, forParagraphSeparatorGlyphRange : paragraphSeparatorGlyphRange, atProposedOrigin : lineOrigin)
    }
    unsafe fn setHardInvalidation_forGlyphRange_(&self, flag: BOOL, glyphRange: NSRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHardInvalidation : flag, forGlyphRange : glyphRange)
    }
    unsafe fn layoutGlyphsInLayoutManager_startingAtGlyphIndex_maxNumberOfLineFragments_nextGlyphIndex_(
        &self,
        layoutManager: NSLayoutManager,
        startGlyphIndex: NSUInteger,
        maxNumLines: NSUInteger,
        nextGlyph: *mut NSUInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutGlyphsInLayoutManager : layoutManager, startingAtGlyphIndex : startGlyphIndex, maxNumberOfLineFragments : maxNumLines, nextGlyphIndex : nextGlyph)
    }
    unsafe fn layoutCharactersInRange_forLayoutManager_maximumNumberOfLineFragments_(
        &self,
        characterRange: NSRange,
        layoutManager: NSLayoutManager,
        maxNumLines: NSUInteger,
    ) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, layoutCharactersInRange : characterRange, forLayoutManager : layoutManager, maximumNumberOfLineFragments : maxNumLines)
    }
    unsafe fn baselineOffsetInLayoutManager_glyphIndex_(
        &self,
        layoutMgr: NSLayoutManager,
        glyphIndex: NSUInteger,
    ) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, baselineOffsetInLayoutManager : layoutMgr, glyphIndex : glyphIndex)
    }
    unsafe fn usesFontLeading(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesFontLeading)
    }
    unsafe fn setUsesFontLeading_(&self, usesFontLeading: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesFontLeading : usesFontLeading)
    }
    unsafe fn typesetterBehavior(&self) -> NSTypesetterBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, typesetterBehavior)
    }
    unsafe fn setTypesetterBehavior_(&self, typesetterBehavior: NSTypesetterBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTypesetterBehavior : typesetterBehavior)
    }
    unsafe fn hyphenationFactor(&self) -> f32
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hyphenationFactor)
    }
    unsafe fn setHyphenationFactor_(&self, hyphenationFactor: f32)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHyphenationFactor : hyphenationFactor)
    }
    unsafe fn lineFragmentPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, lineFragmentPadding)
    }
    unsafe fn setLineFragmentPadding_(&self, lineFragmentPadding: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLineFragmentPadding : lineFragmentPadding)
    }
    unsafe fn bidiProcessingEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bidiProcessingEnabled)
    }
    unsafe fn setBidiProcessingEnabled_(&self, bidiProcessingEnabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBidiProcessingEnabled : bidiProcessingEnabled)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn setAttributedString_(&self, attributedString: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedString : attributedString)
    }
    unsafe fn paragraphGlyphRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphGlyphRange)
    }
    unsafe fn paragraphSeparatorGlyphRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSeparatorGlyphRange)
    }
    unsafe fn paragraphCharacterRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphCharacterRange)
    }
    unsafe fn paragraphSeparatorCharacterRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSeparatorCharacterRange)
    }
    unsafe fn attributesForExtraLineFragment(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributesForExtraLineFragment)
    }
    unsafe fn layoutManager(&self) -> NSLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutManager)
    }
    unsafe fn textContainers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContainers)
    }
    unsafe fn currentTextContainer(&self) -> NSTextContainer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentTextContainer)
    }
    unsafe fn currentParagraphStyle(&self) -> NSParagraphStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, currentParagraphStyle)
    }
    unsafe fn printingAdjustmentInLayoutManager_forNominallySpacedGlyphRange_packedGlyphs_count_(
        layoutMgr: NSLayoutManager,
        nominallySpacedGlyphsRange: NSRange,
        packedGlyphs: *const ::std::os::raw::c_uchar,
        packedGlyphsCount: NSUInteger,
    ) -> NSSize
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTypesetter").unwrap(), printingAdjustmentInLayoutManager : layoutMgr, forNominallySpacedGlyphRange : nominallySpacedGlyphsRange, packedGlyphs : packedGlyphs, count : packedGlyphsCount)
    }
    unsafe fn sharedSystemTypesetterForBehavior_(behavior: NSTypesetterBehavior) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTypesetter").unwrap(), sharedSystemTypesetterForBehavior : behavior)
    }
    unsafe fn sharedSystemTypesetter() -> NSTypesetter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTypesetter").unwrap(), sharedSystemTypesetter)
    }
    unsafe fn defaultTypesetterBehavior() -> NSTypesetterBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTypesetter").unwrap(), defaultTypesetterBehavior)
    }
}
impl NSTypesetter_NSLayoutPhaseInterface for NSTypesetter {}
impl NSTypesetter_NSGlyphStorageInterface for NSTypesetter {}
pub type NSTypesetterControlCharacterAction = NSUInteger;
impl NSTypesetter_NSTypesetter_Deprecated for NSTypesetter {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSATSTypesetter(pub id);
impl std::ops::Deref for NSATSTypesetter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSATSTypesetter {}
impl NSATSTypesetter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSATSTypesetter").unwrap(), alloc) })
    }
}
impl INSTypesetter for NSATSTypesetter {}
impl From<NSATSTypesetter> for NSTypesetter {
    fn from(child: NSATSTypesetter) -> NSTypesetter {
        NSTypesetter(child.0)
    }
}
impl std::convert::TryFrom<NSTypesetter> for NSATSTypesetter {
    type Error = &'static str;
    fn try_from(parent: NSTypesetter) -> Result<NSATSTypesetter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSATSTypesetter").unwrap()) };
        if is_kind_of {
            Ok(NSATSTypesetter(parent.0))
        } else {
            Err("This NSTypesetter cannot be downcasted to NSATSTypesetter")
        }
    }
}
impl INSObject for NSATSTypesetter {}
impl PNSObject for NSATSTypesetter {}
impl INSATSTypesetter for NSATSTypesetter {}
pub trait INSATSTypesetter: Sized + std::ops::Deref {
    unsafe fn sharedTypesetter() -> NSATSTypesetter
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSATSTypesetter").unwrap(), sharedTypesetter)
    }
}
impl NSATSTypesetter_NSPantherCompatibility for NSATSTypesetter {}
impl NSATSTypesetter_NSPrimitiveInterface for NSATSTypesetter {}
impl NSATSTypesetter_NSLayoutPhaseInterface for NSATSTypesetter {}
impl NSATSTypesetter_NSGlyphStorageInterface for NSATSTypesetter {}
pub trait PNSSearchFieldDelegate: Sized + std::ops::Deref {
    unsafe fn searchFieldDidStartSearching_(&self, sender: NSSearchField)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, searchFieldDidStartSearching : sender)
    }
    unsafe fn searchFieldDidEndSearching_(&self, sender: NSSearchField)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, searchFieldDidEndSearching : sender)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSearchField(pub id);
impl std::ops::Deref for NSSearchField {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSearchField {}
impl NSSearchField {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSearchField").unwrap(), alloc) })
    }
}
impl INSTextField for NSSearchField {}
impl PNSUserInterfaceValidations for NSSearchField {}
impl PNSAccessibilityNavigableStaticText for NSSearchField {}
impl PNSTextContent for NSSearchField {}
impl std::convert::TryFrom<NSTextField> for NSSearchField {
    type Error = &'static str;
    fn try_from(parent: NSTextField) -> Result<NSSearchField, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSearchField").unwrap()) };
        if is_kind_of {
            Ok(NSSearchField(parent.0))
        } else {
            Err("This NSTextField cannot be downcasted to NSSearchField")
        }
    }
}
impl INSControl for NSSearchField {}
impl INSView for NSSearchField {}
impl PNSAnimatablePropertyContainer for NSSearchField {}
impl PNSUserInterfaceItemIdentification for NSSearchField {}
impl PNSDraggingDestination for NSSearchField {}
impl PNSAppearanceCustomization for NSSearchField {}
impl PNSAccessibilityElement for NSSearchField {}
impl PNSAccessibility for NSSearchField {}
impl INSResponder for NSSearchField {}
impl PNSCoding for NSSearchField {}
impl INSObject for NSSearchField {}
impl PNSObject for NSSearchField {}
impl INSSearchField for NSSearchField {}
pub trait INSSearchField: Sized + std::ops::Deref {
    unsafe fn searchTextBounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchTextBounds)
    }
    unsafe fn searchButtonBounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchButtonBounds)
    }
    unsafe fn cancelButtonBounds(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancelButtonBounds)
    }
    unsafe fn recentSearches(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recentSearches)
    }
    unsafe fn setRecentSearches_(&self, recentSearches: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRecentSearches : recentSearches)
    }
    unsafe fn recentsAutosaveName(&self) -> NSSearchFieldRecentsAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recentsAutosaveName)
    }
    unsafe fn setRecentsAutosaveName_(&self, recentsAutosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRecentsAutosaveName : recentsAutosaveName)
    }
    unsafe fn searchMenuTemplate(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchMenuTemplate)
    }
    unsafe fn setSearchMenuTemplate_(&self, searchMenuTemplate: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSearchMenuTemplate : searchMenuTemplate)
    }
    unsafe fn sendsWholeSearchString(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendsWholeSearchString)
    }
    unsafe fn setSendsWholeSearchString_(&self, sendsWholeSearchString: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSendsWholeSearchString : sendsWholeSearchString)
    }
    unsafe fn maximumRecents(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumRecents)
    }
    unsafe fn setMaximumRecents_(&self, maximumRecents: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumRecents : maximumRecents)
    }
    unsafe fn sendsSearchStringImmediately(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendsSearchStringImmediately)
    }
    unsafe fn setSendsSearchStringImmediately_(&self, sendsSearchStringImmediately: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSendsSearchStringImmediately : sendsSearchStringImmediately)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
}
impl NSSearchField_NSSearchField_Deprecated for NSSearchField {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSearchFieldCell(pub id);
impl std::ops::Deref for NSSearchFieldCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSearchFieldCell {}
impl NSSearchFieldCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSearchFieldCell").unwrap(), alloc) })
    }
}
impl INSTextFieldCell for NSSearchFieldCell {}
impl std::convert::TryFrom<NSTextFieldCell> for NSSearchFieldCell {
    type Error = &'static str;
    fn try_from(parent: NSTextFieldCell) -> Result<NSSearchFieldCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSearchFieldCell").unwrap()) };
        if is_kind_of {
            Ok(NSSearchFieldCell(parent.0))
        } else {
            Err("This NSTextFieldCell cannot be downcasted to NSSearchFieldCell")
        }
    }
}
impl INSActionCell for NSSearchFieldCell {}
impl INSCell for NSSearchFieldCell {}
impl PNSCopying for NSSearchFieldCell {}
impl PNSCoding for NSSearchFieldCell {}
impl PNSUserInterfaceItemIdentification for NSSearchFieldCell {}
impl PNSAccessibilityElement for NSSearchFieldCell {}
impl PNSAccessibility for NSSearchFieldCell {}
impl INSObject for NSSearchFieldCell {}
impl PNSObject for NSSearchFieldCell {}
impl INSSearchFieldCell for NSSearchFieldCell {}
pub trait INSSearchFieldCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn resetSearchButtonCell(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resetSearchButtonCell)
    }
    unsafe fn resetCancelButtonCell(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resetCancelButtonCell)
    }
    unsafe fn searchTextRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, searchTextRectForBounds : rect)
    }
    unsafe fn searchButtonRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, searchButtonRectForBounds : rect)
    }
    unsafe fn cancelButtonRectForBounds_(&self, rect: NSRect) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, cancelButtonRectForBounds : rect)
    }
    unsafe fn searchButtonCell(&self) -> NSButtonCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchButtonCell)
    }
    unsafe fn setSearchButtonCell_(&self, searchButtonCell: NSButtonCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSearchButtonCell : searchButtonCell)
    }
    unsafe fn cancelButtonCell(&self) -> NSButtonCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, cancelButtonCell)
    }
    unsafe fn setCancelButtonCell_(&self, cancelButtonCell: NSButtonCell)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCancelButtonCell : cancelButtonCell)
    }
    unsafe fn searchMenuTemplate(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchMenuTemplate)
    }
    unsafe fn setSearchMenuTemplate_(&self, searchMenuTemplate: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSearchMenuTemplate : searchMenuTemplate)
    }
    unsafe fn sendsWholeSearchString(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendsWholeSearchString)
    }
    unsafe fn setSendsWholeSearchString_(&self, sendsWholeSearchString: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSendsWholeSearchString : sendsWholeSearchString)
    }
    unsafe fn maximumRecents(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maximumRecents)
    }
    unsafe fn setMaximumRecents_(&self, maximumRecents: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaximumRecents : maximumRecents)
    }
    unsafe fn recentSearches(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recentSearches)
    }
    unsafe fn setRecentSearches_(&self, recentSearches: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRecentSearches : recentSearches)
    }
    unsafe fn recentsAutosaveName(&self) -> NSSearchFieldRecentsAutosaveName
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, recentsAutosaveName)
    }
    unsafe fn setRecentsAutosaveName_(&self, recentsAutosaveName: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRecentsAutosaveName : recentsAutosaveName)
    }
    unsafe fn sendsSearchStringImmediately(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sendsSearchStringImmediately)
    }
    unsafe fn setSendsSearchStringImmediately_(&self, sendsSearchStringImmediately: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSendsSearchStringImmediately : sendsSearchStringImmediately)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSController(pub id);
impl std::ops::Deref for NSController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSController {}
impl NSController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSController").unwrap(), alloc) })
    }
}
impl PNSCoding for NSController {}
impl PNSEditor for NSController {}
impl PNSEditorRegistration for NSController {}
impl INSObject for NSController {}
impl PNSObject for NSController {}
impl std::convert::TryFrom<NSObject> for NSController {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSController").unwrap()) };
        if is_kind_of {
            Ok(NSController(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSController")
        }
    }
}
impl INSController for NSController {}
pub trait INSController: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn objectDidBeginEditing_(&self, editor: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, objectDidBeginEditing : editor)
    }
    unsafe fn objectDidEndEditing_(&self, editor: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, objectDidEndEditing : editor)
    }
    unsafe fn discardEditing(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, discardEditing)
    }
    unsafe fn commitEditing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, commitEditing)
    }
    unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo_(
        &self,
        delegate: id,
        didCommitSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, commitEditingWithDelegate : delegate, didCommitSelector : didCommitSelector, contextInfo : contextInfo)
    }
    unsafe fn isEditing(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditing)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSObjectController(pub id);
impl std::ops::Deref for NSObjectController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSObjectController {}
impl NSObjectController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSObjectController").unwrap(), alloc) })
    }
}
impl INSController for NSObjectController {}
impl PNSCoding for NSObjectController {}
impl PNSEditor for NSObjectController {}
impl PNSEditorRegistration for NSObjectController {}
impl From<NSObjectController> for NSController {
    fn from(child: NSObjectController) -> NSController {
        NSController(child.0)
    }
}
impl std::convert::TryFrom<NSController> for NSObjectController {
    type Error = &'static str;
    fn try_from(parent: NSController) -> Result<NSObjectController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSObjectController").unwrap()) };
        if is_kind_of {
            Ok(NSObjectController(parent.0))
        } else {
            Err("This NSController cannot be downcasted to NSObjectController")
        }
    }
}
impl INSObject for NSObjectController {}
impl PNSObject for NSObjectController {}
impl INSObjectController for NSObjectController {}
pub trait INSObjectController: Sized + std::ops::Deref {
    unsafe fn initWithContent_(&self, content: id) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithContent : content)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn prepareContent(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, prepareContent)
    }
    unsafe fn newObject(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, newObject)
    }
    unsafe fn addObject_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addObject : object)
    }
    unsafe fn removeObject_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObject : object)
    }
    unsafe fn add_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, add : sender)
    }
    unsafe fn remove_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, remove : sender)
    }
    unsafe fn validateUserInterfaceItem_(&self, item: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, validateUserInterfaceItem : item)
    }
    unsafe fn content(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn setContent_(&self, content: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContent : content)
    }
    unsafe fn selection(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selection)
    }
    unsafe fn selectedObjects(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedObjects)
    }
    unsafe fn automaticallyPreparesContent(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyPreparesContent)
    }
    unsafe fn setAutomaticallyPreparesContent_(&self, automaticallyPreparesContent: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyPreparesContent : automaticallyPreparesContent)
    }
    unsafe fn objectClass(&self) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, objectClass)
    }
    unsafe fn setObjectClass_(&self, objectClass: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObjectClass : objectClass)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn canAdd(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canAdd)
    }
    unsafe fn canRemove(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canRemove)
    }
}
impl NSObjectController_NSManagedController for NSObjectController {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSArrayController(pub id);
impl std::ops::Deref for NSArrayController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSArrayController {}
impl NSArrayController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSArrayController").unwrap(), alloc) })
    }
}
impl INSObjectController for NSArrayController {}
impl From<NSArrayController> for NSObjectController {
    fn from(child: NSArrayController) -> NSObjectController {
        NSObjectController(child.0)
    }
}
impl std::convert::TryFrom<NSObjectController> for NSArrayController {
    type Error = &'static str;
    fn try_from(parent: NSObjectController) -> Result<NSArrayController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSArrayController").unwrap()) };
        if is_kind_of {
            Ok(NSArrayController(parent.0))
        } else {
            Err("This NSObjectController cannot be downcasted to NSArrayController")
        }
    }
}
impl INSController for NSArrayController {}
impl PNSCoding for NSArrayController {}
impl PNSEditor for NSArrayController {}
impl PNSEditorRegistration for NSArrayController {}
impl INSObject for NSArrayController {}
impl PNSObject for NSArrayController {}
impl INSArrayController for NSArrayController {}
pub trait INSArrayController: Sized + std::ops::Deref {
    unsafe fn rearrangeObjects(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rearrangeObjects)
    }
    unsafe fn didChangeArrangementCriteria(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, didChangeArrangementCriteria)
    }
    unsafe fn arrangeObjects_(&self, objects: NSArray) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, arrangeObjects : objects)
    }
    unsafe fn setSelectionIndexes_(&self, indexes: NSIndexSet) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexes : indexes)
    }
    unsafe fn setSelectionIndex_(&self, index: NSUInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndex : index)
    }
    unsafe fn addSelectionIndexes_(&self, indexes: NSIndexSet) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSelectionIndexes : indexes)
    }
    unsafe fn removeSelectionIndexes_(&self, indexes: NSIndexSet) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeSelectionIndexes : indexes)
    }
    unsafe fn setSelectedObjects_(&self, objects: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedObjects : objects)
    }
    unsafe fn addSelectedObjects_(&self, objects: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSelectedObjects : objects)
    }
    unsafe fn removeSelectedObjects_(&self, objects: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeSelectedObjects : objects)
    }
    unsafe fn add_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, add : sender)
    }
    unsafe fn remove_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, remove : sender)
    }
    unsafe fn insert_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insert : sender)
    }
    unsafe fn selectNext_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectNext : sender)
    }
    unsafe fn selectPrevious_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectPrevious : sender)
    }
    unsafe fn addObject_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addObject : object)
    }
    unsafe fn addObjects_(&self, objects: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addObjects : objects)
    }
    unsafe fn insertObject_atArrangedObjectIndex_(&self, object: id, index: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertObject : object, atArrangedObjectIndex : index)
    }
    unsafe fn insertObjects_atArrangedObjectIndexes_(&self, objects: NSArray, indexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertObjects : objects, atArrangedObjectIndexes : indexes)
    }
    unsafe fn removeObjectAtArrangedObjectIndex_(&self, index: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObjectAtArrangedObjectIndex : index)
    }
    unsafe fn removeObjectsAtArrangedObjectIndexes_(&self, indexes: NSIndexSet)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObjectsAtArrangedObjectIndexes : indexes)
    }
    unsafe fn removeObject_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObject : object)
    }
    unsafe fn removeObjects_(&self, objects: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObjects : objects)
    }
    unsafe fn automaticallyRearrangesObjects(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyRearrangesObjects)
    }
    unsafe fn setAutomaticallyRearrangesObjects_(&self, automaticallyRearrangesObjects: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyRearrangesObjects : automaticallyRearrangesObjects)
    }
    unsafe fn automaticRearrangementKeyPaths(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticRearrangementKeyPaths)
    }
    unsafe fn sortDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sortDescriptors)
    }
    unsafe fn setSortDescriptors_(&self, sortDescriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSortDescriptors : sortDescriptors)
    }
    unsafe fn filterPredicate(&self) -> NSPredicate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, filterPredicate)
    }
    unsafe fn setFilterPredicate_(&self, filterPredicate: NSPredicate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFilterPredicate : filterPredicate)
    }
    unsafe fn clearsFilterPredicateOnInsertion(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clearsFilterPredicateOnInsertion)
    }
    unsafe fn setClearsFilterPredicateOnInsertion_(&self, clearsFilterPredicateOnInsertion: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setClearsFilterPredicateOnInsertion : clearsFilterPredicateOnInsertion)
    }
    unsafe fn arrangedObjects(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrangedObjects)
    }
    unsafe fn avoidsEmptySelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, avoidsEmptySelection)
    }
    unsafe fn setAvoidsEmptySelection_(&self, avoidsEmptySelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAvoidsEmptySelection : avoidsEmptySelection)
    }
    unsafe fn preservesSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preservesSelection)
    }
    unsafe fn setPreservesSelection_(&self, preservesSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreservesSelection : preservesSelection)
    }
    unsafe fn selectsInsertedObjects(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectsInsertedObjects)
    }
    unsafe fn setSelectsInsertedObjects_(&self, selectsInsertedObjects: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectsInsertedObjects : selectsInsertedObjects)
    }
    unsafe fn alwaysUsesMultipleValuesMarker(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alwaysUsesMultipleValuesMarker)
    }
    unsafe fn setAlwaysUsesMultipleValuesMarker_(&self, alwaysUsesMultipleValuesMarker: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlwaysUsesMultipleValuesMarker : alwaysUsesMultipleValuesMarker)
    }
    unsafe fn selectionIndexes(&self) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexes)
    }
    unsafe fn selectionIndex(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndex)
    }
    unsafe fn selectedObjects(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedObjects)
    }
    unsafe fn canInsert(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canInsert)
    }
    unsafe fn canSelectNext(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canSelectNext)
    }
    unsafe fn canSelectPrevious(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canSelectPrevious)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDictionaryControllerKeyValuePair(pub id);
impl std::ops::Deref for NSDictionaryControllerKeyValuePair {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDictionaryControllerKeyValuePair {}
impl NSDictionaryControllerKeyValuePair {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDictionaryControllerKeyValuePair").unwrap(), alloc) })
    }
}
impl INSObject for NSDictionaryControllerKeyValuePair {}
impl PNSObject for NSDictionaryControllerKeyValuePair {}
impl std::convert::TryFrom<NSObject> for NSDictionaryControllerKeyValuePair {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSDictionaryControllerKeyValuePair, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDictionaryControllerKeyValuePair").unwrap())
        };
        if is_kind_of {
            Ok(NSDictionaryControllerKeyValuePair(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSDictionaryControllerKeyValuePair")
        }
    }
}
impl INSDictionaryControllerKeyValuePair for NSDictionaryControllerKeyValuePair {}
pub trait INSDictionaryControllerKeyValuePair: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn key(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, key)
    }
    unsafe fn setKey_(&self, key: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setKey : key)
    }
    unsafe fn value(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, value)
    }
    unsafe fn setValue_(&self, value: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValue : value)
    }
    unsafe fn localizedKey(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedKey)
    }
    unsafe fn setLocalizedKey_(&self, localizedKey: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocalizedKey : localizedKey)
    }
    unsafe fn isExplicitlyIncluded(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isExplicitlyIncluded)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDictionaryController(pub id);
impl std::ops::Deref for NSDictionaryController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDictionaryController {}
impl NSDictionaryController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDictionaryController").unwrap(), alloc) })
    }
}
impl INSArrayController for NSDictionaryController {}
impl From<NSDictionaryController> for NSArrayController {
    fn from(child: NSDictionaryController) -> NSArrayController {
        NSArrayController(child.0)
    }
}
impl std::convert::TryFrom<NSArrayController> for NSDictionaryController {
    type Error = &'static str;
    fn try_from(parent: NSArrayController) -> Result<NSDictionaryController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDictionaryController").unwrap()) };
        if is_kind_of {
            Ok(NSDictionaryController(parent.0))
        } else {
            Err("This NSArrayController cannot be downcasted to NSDictionaryController")
        }
    }
}
impl INSObjectController for NSDictionaryController {}
impl INSController for NSDictionaryController {}
impl PNSCoding for NSDictionaryController {}
impl PNSEditor for NSDictionaryController {}
impl PNSEditorRegistration for NSDictionaryController {}
impl INSObject for NSDictionaryController {}
impl PNSObject for NSDictionaryController {}
impl INSDictionaryController for NSDictionaryController {}
pub trait INSDictionaryController: Sized + std::ops::Deref {
    unsafe fn newObject(&self) -> NSDictionaryControllerKeyValuePair
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, newObject)
    }
    unsafe fn initialKey(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, initialKey)
    }
    unsafe fn setInitialKey_(&self, initialKey: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInitialKey : initialKey)
    }
    unsafe fn initialValue(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, initialValue)
    }
    unsafe fn setInitialValue_(&self, initialValue: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInitialValue : initialValue)
    }
    unsafe fn includedKeys(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, includedKeys)
    }
    unsafe fn setIncludedKeys_(&self, includedKeys: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncludedKeys : includedKeys)
    }
    unsafe fn excludedKeys(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, excludedKeys)
    }
    unsafe fn setExcludedKeys_(&self, excludedKeys: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setExcludedKeys : excludedKeys)
    }
    unsafe fn localizedKeyDictionary(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedKeyDictionary)
    }
    unsafe fn setLocalizedKeyDictionary_(&self, localizedKeyDictionary: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocalizedKeyDictionary : localizedKeyDictionary)
    }
    unsafe fn localizedKeyTable(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, localizedKeyTable)
    }
    unsafe fn setLocalizedKeyTable_(&self, localizedKeyTable: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocalizedKeyTable : localizedKeyTable)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTreeNode(pub id);
impl std::ops::Deref for NSTreeNode {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTreeNode {}
impl NSTreeNode {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTreeNode").unwrap(), alloc) })
    }
}
impl INSObject for NSTreeNode {}
impl PNSObject for NSTreeNode {}
impl std::convert::TryFrom<NSObject> for NSTreeNode {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTreeNode, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTreeNode").unwrap()) };
        if is_kind_of {
            Ok(NSTreeNode(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTreeNode")
        }
    }
}
impl INSTreeNode for NSTreeNode {}
pub trait INSTreeNode: Sized + std::ops::Deref {
    unsafe fn initWithRepresentedObject_(&self, modelObject: id) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRepresentedObject : modelObject)
    }
    unsafe fn descendantNodeAtIndexPath_(&self, indexPath: NSIndexPath) -> NSTreeNode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, descendantNodeAtIndexPath : indexPath)
    }
    unsafe fn sortWithSortDescriptors_recursively_(
        &self,
        sortDescriptors: NSArray,
        recursively: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, sortWithSortDescriptors : sortDescriptors, recursively : recursively)
    }
    unsafe fn representedObject(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, representedObject)
    }
    unsafe fn indexPath(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, indexPath)
    }
    unsafe fn isLeaf(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isLeaf)
    }
    unsafe fn childNodes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, childNodes)
    }
    unsafe fn mutableChildNodes(&self) -> NSMutableArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, mutableChildNodes)
    }
    unsafe fn parentNode(&self) -> NSTreeNode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parentNode)
    }
    unsafe fn treeNodeWithRepresentedObject_(modelObject: id) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTreeNode").unwrap(), treeNodeWithRepresentedObject : modelObject)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTreeController(pub id);
impl std::ops::Deref for NSTreeController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTreeController {}
impl NSTreeController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTreeController").unwrap(), alloc) })
    }
}
impl INSObjectController for NSTreeController {}
impl std::convert::TryFrom<NSObjectController> for NSTreeController {
    type Error = &'static str;
    fn try_from(parent: NSObjectController) -> Result<NSTreeController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTreeController").unwrap()) };
        if is_kind_of {
            Ok(NSTreeController(parent.0))
        } else {
            Err("This NSObjectController cannot be downcasted to NSTreeController")
        }
    }
}
impl INSController for NSTreeController {}
impl PNSCoding for NSTreeController {}
impl PNSEditor for NSTreeController {}
impl PNSEditorRegistration for NSTreeController {}
impl INSObject for NSTreeController {}
impl PNSObject for NSTreeController {}
impl INSTreeController for NSTreeController {}
pub trait INSTreeController: Sized + std::ops::Deref {
    unsafe fn rearrangeObjects(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rearrangeObjects)
    }
    unsafe fn add_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, add : sender)
    }
    unsafe fn remove_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, remove : sender)
    }
    unsafe fn addChild_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addChild : sender)
    }
    unsafe fn insert_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insert : sender)
    }
    unsafe fn insertChild_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertChild : sender)
    }
    unsafe fn insertObject_atArrangedObjectIndexPath_(&self, object: id, indexPath: NSIndexPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertObject : object, atArrangedObjectIndexPath : indexPath)
    }
    unsafe fn insertObjects_atArrangedObjectIndexPaths_(
        &self,
        objects: NSArray,
        indexPaths: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertObjects : objects, atArrangedObjectIndexPaths : indexPaths)
    }
    unsafe fn removeObjectAtArrangedObjectIndexPath_(&self, indexPath: NSIndexPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObjectAtArrangedObjectIndexPath : indexPath)
    }
    unsafe fn removeObjectsAtArrangedObjectIndexPaths_(&self, indexPaths: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeObjectsAtArrangedObjectIndexPaths : indexPaths)
    }
    unsafe fn setSelectionIndexPaths_(&self, indexPaths: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexPaths : indexPaths)
    }
    unsafe fn setSelectionIndexPath_(&self, indexPath: NSIndexPath) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionIndexPath : indexPath)
    }
    unsafe fn addSelectionIndexPaths_(&self, indexPaths: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addSelectionIndexPaths : indexPaths)
    }
    unsafe fn removeSelectionIndexPaths_(&self, indexPaths: NSArray) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeSelectionIndexPaths : indexPaths)
    }
    unsafe fn moveNode_toIndexPath_(&self, node: NSTreeNode, indexPath: NSIndexPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveNode : node, toIndexPath : indexPath)
    }
    unsafe fn moveNodes_toIndexPath_(&self, nodes: NSArray, startingIndexPath: NSIndexPath)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, moveNodes : nodes, toIndexPath : startingIndexPath)
    }
    unsafe fn childrenKeyPathForNode_(&self, node: NSTreeNode) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, childrenKeyPathForNode : node)
    }
    unsafe fn countKeyPathForNode_(&self, node: NSTreeNode) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, countKeyPathForNode : node)
    }
    unsafe fn leafKeyPathForNode_(&self, node: NSTreeNode) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, leafKeyPathForNode : node)
    }
    unsafe fn arrangedObjects(&self) -> NSTreeNode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrangedObjects)
    }
    unsafe fn childrenKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, childrenKeyPath)
    }
    unsafe fn setChildrenKeyPath_(&self, childrenKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setChildrenKeyPath : childrenKeyPath)
    }
    unsafe fn countKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, countKeyPath)
    }
    unsafe fn setCountKeyPath_(&self, countKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCountKeyPath : countKeyPath)
    }
    unsafe fn leafKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leafKeyPath)
    }
    unsafe fn setLeafKeyPath_(&self, leafKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLeafKeyPath : leafKeyPath)
    }
    unsafe fn sortDescriptors(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, sortDescriptors)
    }
    unsafe fn setSortDescriptors_(&self, sortDescriptors: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSortDescriptors : sortDescriptors)
    }
    unsafe fn content(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, content)
    }
    unsafe fn setContent_(&self, content: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContent : content)
    }
    unsafe fn canInsert(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canInsert)
    }
    unsafe fn canInsertChild(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canInsertChild)
    }
    unsafe fn canAddChild(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canAddChild)
    }
    unsafe fn avoidsEmptySelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, avoidsEmptySelection)
    }
    unsafe fn setAvoidsEmptySelection_(&self, avoidsEmptySelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAvoidsEmptySelection : avoidsEmptySelection)
    }
    unsafe fn preservesSelection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preservesSelection)
    }
    unsafe fn setPreservesSelection_(&self, preservesSelection: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreservesSelection : preservesSelection)
    }
    unsafe fn selectsInsertedObjects(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectsInsertedObjects)
    }
    unsafe fn setSelectsInsertedObjects_(&self, selectsInsertedObjects: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectsInsertedObjects : selectsInsertedObjects)
    }
    unsafe fn alwaysUsesMultipleValuesMarker(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alwaysUsesMultipleValuesMarker)
    }
    unsafe fn setAlwaysUsesMultipleValuesMarker_(&self, alwaysUsesMultipleValuesMarker: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAlwaysUsesMultipleValuesMarker : alwaysUsesMultipleValuesMarker)
    }
    unsafe fn selectedObjects(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedObjects)
    }
    unsafe fn selectionIndexPaths(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexPaths)
    }
    unsafe fn selectionIndexPath(&self) -> NSIndexPath
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionIndexPath)
    }
    unsafe fn selectedNodes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedNodes)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSUserDefaultsController(pub id);
impl std::ops::Deref for NSUserDefaultsController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSUserDefaultsController {}
impl NSUserDefaultsController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserDefaultsController").unwrap(), alloc) })
    }
}
impl INSController for NSUserDefaultsController {}
impl PNSCoding for NSUserDefaultsController {}
impl PNSEditor for NSUserDefaultsController {}
impl PNSEditorRegistration for NSUserDefaultsController {}
impl std::convert::TryFrom<NSController> for NSUserDefaultsController {
    type Error = &'static str;
    fn try_from(parent: NSController) -> Result<NSUserDefaultsController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSUserDefaultsController").unwrap()) };
        if is_kind_of {
            Ok(NSUserDefaultsController(parent.0))
        } else {
            Err("This NSController cannot be downcasted to NSUserDefaultsController")
        }
    }
}
impl INSObject for NSUserDefaultsController {}
impl PNSObject for NSUserDefaultsController {}
impl INSUserDefaultsController for NSUserDefaultsController {}
pub trait INSUserDefaultsController: Sized + std::ops::Deref {
    unsafe fn initWithDefaults_initialValues_(
        &self,
        defaults: NSUserDefaults,
        initialValues: NSDictionary,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDefaults : defaults, initialValues : initialValues)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn revert_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, revert : sender)
    }
    unsafe fn save_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, save : sender)
    }
    unsafe fn revertToInitialValues_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, revertToInitialValues : sender)
    }
    unsafe fn defaults(&self) -> NSUserDefaults
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, defaults)
    }
    unsafe fn initialValues(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, initialValues)
    }
    unsafe fn setInitialValues_(&self, initialValues: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setInitialValues : initialValues)
    }
    unsafe fn appliesImmediately(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, appliesImmediately)
    }
    unsafe fn setAppliesImmediately_(&self, appliesImmediately: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAppliesImmediately : appliesImmediately)
    }
    unsafe fn hasUnappliedChanges(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasUnappliedChanges)
    }
    unsafe fn values(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, values)
    }
    unsafe fn sharedUserDefaultsController() -> NSUserDefaultsController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSUserDefaultsController").unwrap(), sharedUserDefaultsController)
    }
}
pub type NSTextListOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextList(pub id);
impl std::ops::Deref for NSTextList {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextList {}
impl NSTextList {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextList").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextList {}
impl PNSCopying for NSTextList {}
impl INSObject for NSTextList {}
impl PNSObject for NSTextList {}
impl std::convert::TryFrom<NSObject> for NSTextList {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextList, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextList").unwrap()) };
        if is_kind_of {
            Ok(NSTextList(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextList")
        }
    }
}
impl INSTextList for NSTextList {}
pub trait INSTextList: Sized + std::ops::Deref {
    unsafe fn initWithMarkerFormat_options_startingItemNumber_(
        &self,
        markerFormat: NSString,
        options: NSTextListOptions,
        startingItemNumber: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMarkerFormat : markerFormat, options : options, startingItemNumber : startingItemNumber)
    }
    unsafe fn initWithMarkerFormat_options_(
        &self,
        markerFormat: NSString,
        options: NSUInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithMarkerFormat : markerFormat, options : options)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn markerForItemNumber_(&self, itemNumber: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, markerForItemNumber : itemNumber)
    }
    unsafe fn markerFormat(&self) -> NSTextListMarkerFormat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, markerFormat)
    }
    unsafe fn listOptions(&self) -> NSTextListOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, listOptions)
    }
    unsafe fn startingItemNumber(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startingItemNumber)
    }
    unsafe fn setStartingItemNumber_(&self, startingItemNumber: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setStartingItemNumber : startingItemNumber)
    }
    unsafe fn isOrdered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isOrdered)
    }
    unsafe fn includesTextListMarkers() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextList").unwrap(), includesTextListMarkers)
    }
}
pub type NSTextBlockValueType = NSUInteger;
pub type NSTextBlockDimension = NSUInteger;
pub type NSTextBlockLayer = NSInteger;
pub type NSTextBlockVerticalAlignment = NSUInteger;
pub type NSTextTableLayoutAlgorithm = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextBlock(pub id);
impl std::ops::Deref for NSTextBlock {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextBlock {}
impl NSTextBlock {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextBlock").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextBlock {}
impl PNSCopying for NSTextBlock {}
impl INSObject for NSTextBlock {}
impl PNSObject for NSTextBlock {}
impl std::convert::TryFrom<NSObject> for NSTextBlock {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextBlock, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextBlock").unwrap()) };
        if is_kind_of {
            Ok(NSTextBlock(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextBlock")
        }
    }
}
impl INSTextBlock for NSTextBlock {}
pub trait INSTextBlock: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn setValue_type_forDimension_(
        &self,
        val: CGFloat,
        type_: NSTextBlockValueType,
        dimension: NSTextBlockDimension,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValue : val, r#type : type_, forDimension : dimension)
    }
    unsafe fn valueForDimension_(&self, dimension: NSTextBlockDimension) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, valueForDimension : dimension)
    }
    unsafe fn valueTypeForDimension_(&self, dimension: NSTextBlockDimension) -> NSTextBlockValueType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, valueTypeForDimension : dimension)
    }
    unsafe fn setContentWidth_type_(&self, val: CGFloat, type_: NSTextBlockValueType)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setContentWidth : val, r#type : type_)
    }
    unsafe fn setWidth_type_forLayer_edge_(
        &self,
        val: CGFloat,
        type_: NSTextBlockValueType,
        layer: NSTextBlockLayer,
        edge: NSRectEdge,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : val, r#type : type_, forLayer : layer, edge : edge)
    }
    unsafe fn setWidth_type_forLayer_(
        &self,
        val: CGFloat,
        type_: NSTextBlockValueType,
        layer: NSTextBlockLayer,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWidth : val, r#type : type_, forLayer : layer)
    }
    unsafe fn widthForLayer_edge_(&self, layer: NSTextBlockLayer, edge: NSRectEdge) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, widthForLayer : layer, edge : edge)
    }
    unsafe fn widthValueTypeForLayer_edge_(
        &self,
        layer: NSTextBlockLayer,
        edge: NSRectEdge,
    ) -> NSTextBlockValueType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, widthValueTypeForLayer : layer, edge : edge)
    }
    unsafe fn setBorderColor_forEdge_(&self, color: NSColor, edge: NSRectEdge)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderColor : color, forEdge : edge)
    }
    unsafe fn setBorderColor_(&self, color: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBorderColor : color)
    }
    unsafe fn borderColorForEdge_(&self, edge: NSRectEdge) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, borderColorForEdge : edge)
    }
    unsafe fn rectForLayoutAtPoint_inRect_textContainer_characterRange_(
        &self,
        startingPoint: NSPoint,
        rect: NSRect,
        textContainer: NSTextContainer,
        charRange: NSRange,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectForLayoutAtPoint : startingPoint, inRect : rect, textContainer : textContainer, characterRange : charRange)
    }
    unsafe fn boundsRectForContentRect_inRect_textContainer_characterRange_(
        &self,
        contentRect: NSRect,
        rect: NSRect,
        textContainer: NSTextContainer,
        charRange: NSRange,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, boundsRectForContentRect : contentRect, inRect : rect, textContainer : textContainer, characterRange : charRange)
    }
    unsafe fn drawBackgroundWithFrame_inView_characterRange_layoutManager_(
        &self,
        frameRect: NSRect,
        controlView: NSView,
        charRange: NSRange,
        layoutManager: NSLayoutManager,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBackgroundWithFrame : frameRect, inView : controlView, characterRange : charRange, layoutManager : layoutManager)
    }
    unsafe fn contentWidth(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentWidth)
    }
    unsafe fn contentWidthValueType(&self) -> NSTextBlockValueType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentWidthValueType)
    }
    unsafe fn verticalAlignment(&self) -> NSTextBlockVerticalAlignment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, verticalAlignment)
    }
    unsafe fn setVerticalAlignment_(&self, verticalAlignment: NSTextBlockVerticalAlignment)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setVerticalAlignment : verticalAlignment)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextTableBlock(pub id);
impl std::ops::Deref for NSTextTableBlock {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextTableBlock {}
impl NSTextTableBlock {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextTableBlock").unwrap(), alloc) })
    }
}
impl INSTextBlock for NSTextTableBlock {}
impl PNSSecureCoding for NSTextTableBlock {}
impl PNSCopying for NSTextTableBlock {}
impl From<NSTextTableBlock> for NSTextBlock {
    fn from(child: NSTextTableBlock) -> NSTextBlock {
        NSTextBlock(child.0)
    }
}
impl std::convert::TryFrom<NSTextBlock> for NSTextTableBlock {
    type Error = &'static str;
    fn try_from(parent: NSTextBlock) -> Result<NSTextTableBlock, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextTableBlock").unwrap()) };
        if is_kind_of {
            Ok(NSTextTableBlock(parent.0))
        } else {
            Err("This NSTextBlock cannot be downcasted to NSTextTableBlock")
        }
    }
}
impl INSObject for NSTextTableBlock {}
impl PNSObject for NSTextTableBlock {}
impl INSTextTableBlock for NSTextTableBlock {}
pub trait INSTextTableBlock: Sized + std::ops::Deref {
    unsafe fn initWithTable_startingRow_rowSpan_startingColumn_columnSpan_(
        &self,
        table: NSTextTable,
        row: NSInteger,
        rowSpan: NSInteger,
        col: NSInteger,
        colSpan: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTable : table, startingRow : row, rowSpan : rowSpan, startingColumn : col, columnSpan : colSpan)
    }
    unsafe fn table(&self) -> NSTextTable
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, table)
    }
    unsafe fn startingRow(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startingRow)
    }
    unsafe fn rowSpan(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowSpan)
    }
    unsafe fn startingColumn(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, startingColumn)
    }
    unsafe fn columnSpan(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, columnSpan)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextTable(pub id);
impl std::ops::Deref for NSTextTable {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextTable {}
impl NSTextTable {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextTable").unwrap(), alloc) })
    }
}
impl INSTextBlock for NSTextTable {}
impl PNSSecureCoding for NSTextTable {}
impl PNSCopying for NSTextTable {}
impl std::convert::TryFrom<NSTextBlock> for NSTextTable {
    type Error = &'static str;
    fn try_from(parent: NSTextBlock) -> Result<NSTextTable, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextTable").unwrap()) };
        if is_kind_of {
            Ok(NSTextTable(parent.0))
        } else {
            Err("This NSTextBlock cannot be downcasted to NSTextTable")
        }
    }
}
impl INSObject for NSTextTable {}
impl PNSObject for NSTextTable {}
impl INSTextTable for NSTextTable {}
pub trait INSTextTable: Sized + std::ops::Deref {
    unsafe fn rectForBlock_layoutAtPoint_inRect_textContainer_characterRange_(
        &self,
        block: NSTextTableBlock,
        startingPoint: NSPoint,
        rect: NSRect,
        textContainer: NSTextContainer,
        charRange: NSRange,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectForBlock : block, layoutAtPoint : startingPoint, inRect : rect, textContainer : textContainer, characterRange : charRange)
    }
    unsafe fn boundsRectForBlock_contentRect_inRect_textContainer_characterRange_(
        &self,
        block: NSTextTableBlock,
        contentRect: NSRect,
        rect: NSRect,
        textContainer: NSTextContainer,
        charRange: NSRange,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, boundsRectForBlock : block, contentRect : contentRect, inRect : rect, textContainer : textContainer, characterRange : charRange)
    }
    unsafe fn drawBackgroundForBlock_withFrame_inView_characterRange_layoutManager_(
        &self,
        block: NSTextTableBlock,
        frameRect: NSRect,
        controlView: NSView,
        charRange: NSRange,
        layoutManager: NSLayoutManager,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawBackgroundForBlock : block, withFrame : frameRect, inView : controlView, characterRange : charRange, layoutManager : layoutManager)
    }
    unsafe fn numberOfColumns(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfColumns)
    }
    unsafe fn setNumberOfColumns_(&self, numberOfColumns: NSUInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfColumns : numberOfColumns)
    }
    unsafe fn layoutAlgorithm(&self) -> NSTextTableLayoutAlgorithm
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutAlgorithm)
    }
    unsafe fn setLayoutAlgorithm_(&self, layoutAlgorithm: NSTextTableLayoutAlgorithm)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayoutAlgorithm : layoutAlgorithm)
    }
    unsafe fn collapsesBorders(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapsesBorders)
    }
    unsafe fn setCollapsesBorders_(&self, collapsesBorders: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsesBorders : collapsesBorders)
    }
    unsafe fn hidesEmptyCells(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hidesEmptyCells)
    }
    unsafe fn setHidesEmptyCells_(&self, hidesEmptyCells: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidesEmptyCells : hidesEmptyCells)
    }
}
pub type NSDatePickerStyle = NSUInteger;
pub type NSDatePickerMode = NSUInteger;
pub type NSDatePickerElementFlags = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDatePickerCell(pub id);
impl std::ops::Deref for NSDatePickerCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDatePickerCell {}
impl NSDatePickerCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDatePickerCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSDatePickerCell {}
impl std::convert::TryFrom<NSActionCell> for NSDatePickerCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSDatePickerCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDatePickerCell").unwrap()) };
        if is_kind_of {
            Ok(NSDatePickerCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSDatePickerCell")
        }
    }
}
impl INSCell for NSDatePickerCell {}
impl PNSCopying for NSDatePickerCell {}
impl PNSCoding for NSDatePickerCell {}
impl PNSUserInterfaceItemIdentification for NSDatePickerCell {}
impl PNSAccessibilityElement for NSDatePickerCell {}
impl PNSAccessibility for NSDatePickerCell {}
impl INSObject for NSDatePickerCell {}
impl PNSObject for NSDatePickerCell {}
impl INSDatePickerCell for NSDatePickerCell {}
pub trait INSDatePickerCell: Sized + std::ops::Deref {
    unsafe fn initTextCell_(&self, string: NSString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initTextCell : string)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initImageCell_(&self, image: NSImage) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initImageCell : image)
    }
    unsafe fn datePickerStyle(&self) -> NSDatePickerStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, datePickerStyle)
    }
    unsafe fn setDatePickerStyle_(&self, datePickerStyle: NSDatePickerStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDatePickerStyle : datePickerStyle)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn textColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textColor)
    }
    unsafe fn setTextColor_(&self, textColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextColor : textColor)
    }
    unsafe fn datePickerMode(&self) -> NSDatePickerMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, datePickerMode)
    }
    unsafe fn setDatePickerMode_(&self, datePickerMode: NSDatePickerMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDatePickerMode : datePickerMode)
    }
    unsafe fn datePickerElements(&self) -> NSDatePickerElementFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, datePickerElements)
    }
    unsafe fn setDatePickerElements_(&self, datePickerElements: NSDatePickerElementFlags)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDatePickerElements : datePickerElements)
    }
    unsafe fn calendar(&self) -> NSCalendar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, calendar)
    }
    unsafe fn setCalendar_(&self, calendar: NSCalendar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCalendar : calendar)
    }
    unsafe fn locale(&self) -> NSLocale
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locale)
    }
    unsafe fn setLocale_(&self, locale: NSLocale)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocale : locale)
    }
    unsafe fn timeZone(&self) -> NSTimeZone
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, timeZone)
    }
    unsafe fn setTimeZone_(&self, timeZone: NSTimeZone)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTimeZone : timeZone)
    }
    unsafe fn dateValue(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateValue)
    }
    unsafe fn setDateValue_(&self, dateValue: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDateValue : dateValue)
    }
    unsafe fn timeInterval(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, timeInterval)
    }
    unsafe fn setTimeInterval_(&self, timeInterval: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTimeInterval : timeInterval)
    }
    unsafe fn minDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minDate)
    }
    unsafe fn setMinDate_(&self, minDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinDate : minDate)
    }
    unsafe fn maxDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxDate)
    }
    unsafe fn setMaxDate_(&self, maxDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxDate : maxDate)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
}
pub trait PNSDatePickerCellDelegate: Sized + std::ops::Deref {
    unsafe fn datePickerCell_validateProposedDateValue_timeInterval_(
        &self,
        datePickerCell: NSDatePickerCell,
        proposedDateValue: *mut NSDate,
        proposedTimeInterval: *mut NSTimeInterval,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, datePickerCell : datePickerCell, validateProposedDateValue : proposedDateValue, timeInterval : proposedTimeInterval)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSDatePicker(pub id);
impl std::ops::Deref for NSDatePicker {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSDatePicker {}
impl NSDatePicker {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSDatePicker").unwrap(), alloc) })
    }
}
impl INSControl for NSDatePicker {}
impl std::convert::TryFrom<NSControl> for NSDatePicker {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSDatePicker, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSDatePicker").unwrap()) };
        if is_kind_of {
            Ok(NSDatePicker(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSDatePicker")
        }
    }
}
impl INSView for NSDatePicker {}
impl PNSAnimatablePropertyContainer for NSDatePicker {}
impl PNSUserInterfaceItemIdentification for NSDatePicker {}
impl PNSDraggingDestination for NSDatePicker {}
impl PNSAppearanceCustomization for NSDatePicker {}
impl PNSAccessibilityElement for NSDatePicker {}
impl PNSAccessibility for NSDatePicker {}
impl INSResponder for NSDatePicker {}
impl PNSCoding for NSDatePicker {}
impl INSObject for NSDatePicker {}
impl PNSObject for NSDatePicker {}
impl INSDatePicker for NSDatePicker {}
pub trait INSDatePicker: Sized + std::ops::Deref {
    unsafe fn datePickerStyle(&self) -> NSDatePickerStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, datePickerStyle)
    }
    unsafe fn setDatePickerStyle_(&self, datePickerStyle: NSDatePickerStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDatePickerStyle : datePickerStyle)
    }
    unsafe fn isBezeled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBezeled)
    }
    unsafe fn setBezeled_(&self, bezeled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezeled : bezeled)
    }
    unsafe fn isBordered(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isBordered)
    }
    unsafe fn setBordered_(&self, bordered: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBordered : bordered)
    }
    unsafe fn drawsBackground(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsBackground)
    }
    unsafe fn setDrawsBackground_(&self, drawsBackground: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsBackground : drawsBackground)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn textColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textColor)
    }
    unsafe fn setTextColor_(&self, textColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextColor : textColor)
    }
    unsafe fn datePickerMode(&self) -> NSDatePickerMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, datePickerMode)
    }
    unsafe fn setDatePickerMode_(&self, datePickerMode: NSDatePickerMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDatePickerMode : datePickerMode)
    }
    unsafe fn datePickerElements(&self) -> NSDatePickerElementFlags
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, datePickerElements)
    }
    unsafe fn setDatePickerElements_(&self, datePickerElements: NSDatePickerElementFlags)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDatePickerElements : datePickerElements)
    }
    unsafe fn calendar(&self) -> NSCalendar
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, calendar)
    }
    unsafe fn setCalendar_(&self, calendar: NSCalendar)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCalendar : calendar)
    }
    unsafe fn locale(&self) -> NSLocale
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, locale)
    }
    unsafe fn setLocale_(&self, locale: NSLocale)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLocale : locale)
    }
    unsafe fn timeZone(&self) -> NSTimeZone
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, timeZone)
    }
    unsafe fn setTimeZone_(&self, timeZone: NSTimeZone)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTimeZone : timeZone)
    }
    unsafe fn dateValue(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, dateValue)
    }
    unsafe fn setDateValue_(&self, dateValue: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDateValue : dateValue)
    }
    unsafe fn timeInterval(&self) -> NSTimeInterval
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, timeInterval)
    }
    unsafe fn setTimeInterval_(&self, timeInterval: NSTimeInterval)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTimeInterval : timeInterval)
    }
    unsafe fn minDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minDate)
    }
    unsafe fn setMinDate_(&self, minDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinDate : minDate)
    }
    unsafe fn maxDate(&self) -> NSDate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxDate)
    }
    unsafe fn setMaxDate_(&self, maxDate: NSDate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxDate : maxDate)
    }
    unsafe fn presentsCalendarOverlay(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, presentsCalendarOverlay)
    }
    unsafe fn setPresentsCalendarOverlay_(&self, presentsCalendarOverlay: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPresentsCalendarOverlay : presentsCalendarOverlay)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
}
pub type NSLevelIndicatorStyle = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLevelIndicatorCell(pub id);
impl std::ops::Deref for NSLevelIndicatorCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLevelIndicatorCell {}
impl NSLevelIndicatorCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLevelIndicatorCell").unwrap(), alloc) })
    }
}
impl INSActionCell for NSLevelIndicatorCell {}
impl std::convert::TryFrom<NSActionCell> for NSLevelIndicatorCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSLevelIndicatorCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLevelIndicatorCell").unwrap()) };
        if is_kind_of {
            Ok(NSLevelIndicatorCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSLevelIndicatorCell")
        }
    }
}
impl INSCell for NSLevelIndicatorCell {}
impl PNSCopying for NSLevelIndicatorCell {}
impl PNSCoding for NSLevelIndicatorCell {}
impl PNSUserInterfaceItemIdentification for NSLevelIndicatorCell {}
impl PNSAccessibilityElement for NSLevelIndicatorCell {}
impl PNSAccessibility for NSLevelIndicatorCell {}
impl INSObject for NSLevelIndicatorCell {}
impl PNSObject for NSLevelIndicatorCell {}
impl INSLevelIndicatorCell for NSLevelIndicatorCell {}
pub trait INSLevelIndicatorCell: Sized + std::ops::Deref {
    unsafe fn initWithLevelIndicatorStyle_(
        &self,
        levelIndicatorStyle: NSLevelIndicatorStyle,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLevelIndicatorStyle : levelIndicatorStyle)
    }
    unsafe fn rectOfTickMarkAtIndex_(&self, index: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectOfTickMarkAtIndex : index)
    }
    unsafe fn tickMarkValueAtIndex_(&self, index: NSInteger) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tickMarkValueAtIndex : index)
    }
    unsafe fn levelIndicatorStyle(&self) -> NSLevelIndicatorStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, levelIndicatorStyle)
    }
    unsafe fn setLevelIndicatorStyle_(&self, levelIndicatorStyle: NSLevelIndicatorStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLevelIndicatorStyle : levelIndicatorStyle)
    }
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn warningValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, warningValue)
    }
    unsafe fn setWarningValue_(&self, warningValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWarningValue : warningValue)
    }
    unsafe fn criticalValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, criticalValue)
    }
    unsafe fn setCriticalValue_(&self, criticalValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCriticalValue : criticalValue)
    }
    unsafe fn tickMarkPosition(&self) -> NSTickMarkPosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tickMarkPosition)
    }
    unsafe fn setTickMarkPosition_(&self, tickMarkPosition: NSTickMarkPosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTickMarkPosition : tickMarkPosition)
    }
    unsafe fn numberOfTickMarks(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfTickMarks)
    }
    unsafe fn setNumberOfTickMarks_(&self, numberOfTickMarks: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfTickMarks : numberOfTickMarks)
    }
    unsafe fn numberOfMajorTickMarks(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfMajorTickMarks)
    }
    unsafe fn setNumberOfMajorTickMarks_(&self, numberOfMajorTickMarks: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfMajorTickMarks : numberOfMajorTickMarks)
    }
}
pub type NSLevelIndicatorPlaceholderVisibility = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSLevelIndicator(pub id);
impl std::ops::Deref for NSLevelIndicator {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSLevelIndicator {}
impl NSLevelIndicator {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSLevelIndicator").unwrap(), alloc) })
    }
}
impl INSControl for NSLevelIndicator {}
impl std::convert::TryFrom<NSControl> for NSLevelIndicator {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSLevelIndicator, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSLevelIndicator").unwrap()) };
        if is_kind_of {
            Ok(NSLevelIndicator(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSLevelIndicator")
        }
    }
}
impl INSView for NSLevelIndicator {}
impl PNSAnimatablePropertyContainer for NSLevelIndicator {}
impl PNSUserInterfaceItemIdentification for NSLevelIndicator {}
impl PNSDraggingDestination for NSLevelIndicator {}
impl PNSAppearanceCustomization for NSLevelIndicator {}
impl PNSAccessibilityElement for NSLevelIndicator {}
impl PNSAccessibility for NSLevelIndicator {}
impl INSResponder for NSLevelIndicator {}
impl PNSCoding for NSLevelIndicator {}
impl INSObject for NSLevelIndicator {}
impl PNSObject for NSLevelIndicator {}
impl INSLevelIndicator for NSLevelIndicator {}
pub trait INSLevelIndicator: Sized + std::ops::Deref {
    unsafe fn tickMarkValueAtIndex_(&self, index: NSInteger) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, tickMarkValueAtIndex : index)
    }
    unsafe fn rectOfTickMarkAtIndex_(&self, index: NSInteger) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectOfTickMarkAtIndex : index)
    }
    unsafe fn levelIndicatorStyle(&self) -> NSLevelIndicatorStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, levelIndicatorStyle)
    }
    unsafe fn setLevelIndicatorStyle_(&self, levelIndicatorStyle: NSLevelIndicatorStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLevelIndicatorStyle : levelIndicatorStyle)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn warningValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, warningValue)
    }
    unsafe fn setWarningValue_(&self, warningValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWarningValue : warningValue)
    }
    unsafe fn criticalValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, criticalValue)
    }
    unsafe fn setCriticalValue_(&self, criticalValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCriticalValue : criticalValue)
    }
    unsafe fn tickMarkPosition(&self) -> NSTickMarkPosition
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, tickMarkPosition)
    }
    unsafe fn setTickMarkPosition_(&self, tickMarkPosition: NSTickMarkPosition)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTickMarkPosition : tickMarkPosition)
    }
    unsafe fn numberOfTickMarks(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfTickMarks)
    }
    unsafe fn setNumberOfTickMarks_(&self, numberOfTickMarks: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfTickMarks : numberOfTickMarks)
    }
    unsafe fn numberOfMajorTickMarks(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfMajorTickMarks)
    }
    unsafe fn setNumberOfMajorTickMarks_(&self, numberOfMajorTickMarks: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfMajorTickMarks : numberOfMajorTickMarks)
    }
    unsafe fn fillColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fillColor)
    }
    unsafe fn setFillColor_(&self, fillColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFillColor : fillColor)
    }
    unsafe fn warningFillColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, warningFillColor)
    }
    unsafe fn setWarningFillColor_(&self, warningFillColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setWarningFillColor : warningFillColor)
    }
    unsafe fn criticalFillColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, criticalFillColor)
    }
    unsafe fn setCriticalFillColor_(&self, criticalFillColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCriticalFillColor : criticalFillColor)
    }
    unsafe fn drawsTieredCapacityLevels(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, drawsTieredCapacityLevels)
    }
    unsafe fn setDrawsTieredCapacityLevels_(&self, drawsTieredCapacityLevels: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDrawsTieredCapacityLevels : drawsTieredCapacityLevels)
    }
    unsafe fn placeholderVisibility(&self) -> NSLevelIndicatorPlaceholderVisibility
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderVisibility)
    }
    unsafe fn setPlaceholderVisibility_(
        &self,
        placeholderVisibility: NSLevelIndicatorPlaceholderVisibility,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderVisibility : placeholderVisibility)
    }
    unsafe fn ratingImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ratingImage)
    }
    unsafe fn setRatingImage_(&self, ratingImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRatingImage : ratingImage)
    }
    unsafe fn ratingPlaceholderImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, ratingPlaceholderImage)
    }
    unsafe fn setRatingPlaceholderImage_(&self, ratingPlaceholderImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRatingPlaceholderImage : ratingPlaceholderImage)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPersistentDocument(pub id);
impl std::ops::Deref for NSPersistentDocument {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPersistentDocument {}
impl NSPersistentDocument {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPersistentDocument").unwrap(), alloc) })
    }
}
impl INSDocument for NSPersistentDocument {}
impl PNSEditorRegistration for NSPersistentDocument {}
impl PNSFilePresenter for NSPersistentDocument {}
impl PNSMenuItemValidation for NSPersistentDocument {}
impl PNSUserInterfaceValidations for NSPersistentDocument {}
impl From<NSPersistentDocument> for NSDocument {
    fn from(child: NSPersistentDocument) -> NSDocument {
        NSDocument(child.0)
    }
}
impl std::convert::TryFrom<NSDocument> for NSPersistentDocument {
    type Error = &'static str;
    fn try_from(parent: NSDocument) -> Result<NSPersistentDocument, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPersistentDocument").unwrap()) };
        if is_kind_of {
            Ok(NSPersistentDocument(parent.0))
        } else {
            Err("This NSDocument cannot be downcasted to NSPersistentDocument")
        }
    }
}
impl INSObject for NSPersistentDocument {}
impl PNSObject for NSPersistentDocument {}
impl INSPersistentDocument for NSPersistentDocument {}
pub trait INSPersistentDocument: Sized + std::ops::Deref {
    unsafe fn configurePersistentStoreCoordinatorForURL_ofType_modelConfiguration_storeOptions_error_(
        &self,
        url: NSURL,
        fileType: NSString,
        configuration: NSString,
        storeOptions: NSDictionary,
        error: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, configurePersistentStoreCoordinatorForURL : url, ofType : fileType, modelConfiguration : configuration, storeOptions : storeOptions, error : error)
    }
    unsafe fn persistentStoreTypeForFileType_(&self, fileType: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, persistentStoreTypeForFileType : fileType)
    }
    unsafe fn writeToURL_ofType_forSaveOperation_originalContentsURL_error_(
        &self,
        absoluteURL: NSURL,
        typeName: NSString,
        saveOperation: NSSaveOperationType,
        absoluteOriginalContentsURL: NSURL,
        error: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writeToURL : absoluteURL, ofType : typeName, forSaveOperation : saveOperation, originalContentsURL : absoluteOriginalContentsURL, error : error)
    }
    unsafe fn readFromURL_ofType_error_(
        &self,
        absoluteURL: NSURL,
        typeName: NSString,
        error: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, readFromURL : absoluteURL, ofType : typeName, error : error)
    }
    unsafe fn revertToContentsOfURL_ofType_error_(
        &self,
        inAbsoluteURL: NSURL,
        inTypeName: NSString,
        outError: *mut NSError,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, revertToContentsOfURL : inAbsoluteURL, ofType : inTypeName, error : outError)
    }
    unsafe fn managedObjectContext(&self) -> NSManagedObjectContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, managedObjectContext)
    }
    unsafe fn setManagedObjectContext_(&self, managedObjectContext: NSManagedObjectContext)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setManagedObjectContext : managedObjectContext)
    }
    unsafe fn managedObjectModel(&self) -> NSManagedObjectModel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, managedObjectModel)
    }
}
impl NSPersistentDocument_NSDeprecated for NSPersistentDocument {}
pub type NSRuleEditorPredicatePartKey = NSString;
pub type NSRuleEditorNestingMode = NSUInteger;
pub type NSRuleEditorRowType = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSRuleEditor(pub id);
impl std::ops::Deref for NSRuleEditor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSRuleEditor {}
impl NSRuleEditor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSRuleEditor").unwrap(), alloc) })
    }
}
impl INSControl for NSRuleEditor {}
impl std::convert::TryFrom<NSControl> for NSRuleEditor {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSRuleEditor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSRuleEditor").unwrap()) };
        if is_kind_of {
            Ok(NSRuleEditor(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSRuleEditor")
        }
    }
}
impl INSView for NSRuleEditor {}
impl PNSAnimatablePropertyContainer for NSRuleEditor {}
impl PNSUserInterfaceItemIdentification for NSRuleEditor {}
impl PNSDraggingDestination for NSRuleEditor {}
impl PNSAppearanceCustomization for NSRuleEditor {}
impl PNSAccessibilityElement for NSRuleEditor {}
impl PNSAccessibility for NSRuleEditor {}
impl INSResponder for NSRuleEditor {}
impl PNSCoding for NSRuleEditor {}
impl INSObject for NSRuleEditor {}
impl PNSObject for NSRuleEditor {}
impl INSRuleEditor for NSRuleEditor {}
pub trait INSRuleEditor: Sized + std::ops::Deref {
    unsafe fn reloadCriteria(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadCriteria)
    }
    unsafe fn reloadPredicate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, reloadPredicate)
    }
    unsafe fn predicateForRow_(&self, row: NSInteger) -> NSPredicate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, predicateForRow : row)
    }
    unsafe fn subrowIndexesForRow_(&self, rowIndex: NSInteger) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, subrowIndexesForRow : rowIndex)
    }
    unsafe fn criteriaForRow_(&self, row: NSInteger) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, criteriaForRow : row)
    }
    unsafe fn displayValuesForRow_(&self, row: NSInteger) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayValuesForRow : row)
    }
    unsafe fn rowForDisplayValue_(&self, displayValue: id) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowForDisplayValue : displayValue)
    }
    unsafe fn rowTypeForRow_(&self, rowIndex: NSInteger) -> NSRuleEditorRowType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rowTypeForRow : rowIndex)
    }
    unsafe fn parentRowForRow_(&self, rowIndex: NSInteger) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, parentRowForRow : rowIndex)
    }
    unsafe fn addRow_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addRow : sender)
    }
    unsafe fn insertRowAtIndex_withType_asSubrowOfRow_animate_(
        &self,
        rowIndex: NSInteger,
        rowType: NSRuleEditorRowType,
        parentRow: NSInteger,
        shouldAnimate: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, insertRowAtIndex : rowIndex, withType : rowType, asSubrowOfRow : parentRow, animate : shouldAnimate)
    }
    unsafe fn setCriteria_andDisplayValues_forRowAtIndex_(
        &self,
        criteria: NSArray,
        values: NSArray,
        rowIndex: NSInteger,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCriteria : criteria, andDisplayValues : values, forRowAtIndex : rowIndex)
    }
    unsafe fn removeRowAtIndex_(&self, rowIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRowAtIndex : rowIndex)
    }
    unsafe fn removeRowsAtIndexes_includeSubrows_(
        &self,
        rowIndexes: NSIndexSet,
        includeSubrows: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRowsAtIndexes : rowIndexes, includeSubrows : includeSubrows)
    }
    unsafe fn selectRowIndexes_byExtendingSelection_(&self, indexes: NSIndexSet, extend_: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, selectRowIndexes : indexes, byExtendingSelection : extend_)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn formattingStringsFilename(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, formattingStringsFilename)
    }
    unsafe fn setFormattingStringsFilename_(&self, formattingStringsFilename: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFormattingStringsFilename : formattingStringsFilename)
    }
    unsafe fn formattingDictionary(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, formattingDictionary)
    }
    unsafe fn setFormattingDictionary_(&self, formattingDictionary: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFormattingDictionary : formattingDictionary)
    }
    unsafe fn nestingMode(&self) -> NSRuleEditorNestingMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, nestingMode)
    }
    unsafe fn setNestingMode_(&self, nestingMode: NSRuleEditorNestingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNestingMode : nestingMode)
    }
    unsafe fn rowHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowHeight)
    }
    unsafe fn setRowHeight_(&self, rowHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowHeight : rowHeight)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn canRemoveAllRows(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, canRemoveAllRows)
    }
    unsafe fn setCanRemoveAllRows_(&self, canRemoveAllRows: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCanRemoveAllRows : canRemoveAllRows)
    }
    unsafe fn predicate(&self) -> NSPredicate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, predicate)
    }
    unsafe fn numberOfRows(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfRows)
    }
    unsafe fn selectedRowIndexes(&self) -> NSIndexSet
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedRowIndexes)
    }
    unsafe fn rowClass(&self) -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowClass)
    }
    unsafe fn setRowClass_(&self, rowClass: Class)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowClass : rowClass)
    }
    unsafe fn rowTypeKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowTypeKeyPath)
    }
    unsafe fn setRowTypeKeyPath_(&self, rowTypeKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowTypeKeyPath : rowTypeKeyPath)
    }
    unsafe fn subrowsKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, subrowsKeyPath)
    }
    unsafe fn setSubrowsKeyPath_(&self, subrowsKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSubrowsKeyPath : subrowsKeyPath)
    }
    unsafe fn criteriaKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, criteriaKeyPath)
    }
    unsafe fn setCriteriaKeyPath_(&self, criteriaKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCriteriaKeyPath : criteriaKeyPath)
    }
    unsafe fn displayValuesKeyPath(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, displayValuesKeyPath)
    }
    unsafe fn setDisplayValuesKeyPath_(&self, displayValuesKeyPath: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDisplayValuesKeyPath : displayValuesKeyPath)
    }
}
pub trait PNSRuleEditorDelegate: Sized + std::ops::Deref {
    unsafe fn ruleEditor_numberOfChildrenForCriterion_withRowType_(
        &self,
        editor: NSRuleEditor,
        criterion: id,
        rowType: NSRuleEditorRowType,
    ) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ruleEditor : editor, numberOfChildrenForCriterion : criterion, withRowType : rowType)
    }
    unsafe fn ruleEditor_child_forCriterion_withRowType_(
        &self,
        editor: NSRuleEditor,
        index: NSInteger,
        criterion: id,
        rowType: NSRuleEditorRowType,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ruleEditor : editor, child : index, forCriterion : criterion, withRowType : rowType)
    }
    unsafe fn ruleEditor_displayValueForCriterion_inRow_(
        &self,
        editor: NSRuleEditor,
        criterion: id,
        row: NSInteger,
    ) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ruleEditor : editor, displayValueForCriterion : criterion, inRow : row)
    }
    unsafe fn ruleEditor_predicatePartsForCriterion_withDisplayValue_inRow_(
        &self,
        editor: NSRuleEditor,
        criterion: id,
        value: id,
        row: NSInteger,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ruleEditor : editor, predicatePartsForCriterion : criterion, withDisplayValue : value, inRow : row)
    }
    unsafe fn ruleEditorRowsDidChange_(&self, notification: NSNotification)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ruleEditorRowsDidChange : notification)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPredicateEditor(pub id);
impl std::ops::Deref for NSPredicateEditor {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPredicateEditor {}
impl NSPredicateEditor {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPredicateEditor").unwrap(), alloc) })
    }
}
impl INSRuleEditor for NSPredicateEditor {}
impl From<NSPredicateEditor> for NSRuleEditor {
    fn from(child: NSPredicateEditor) -> NSRuleEditor {
        NSRuleEditor(child.0)
    }
}
impl std::convert::TryFrom<NSRuleEditor> for NSPredicateEditor {
    type Error = &'static str;
    fn try_from(parent: NSRuleEditor) -> Result<NSPredicateEditor, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPredicateEditor").unwrap()) };
        if is_kind_of {
            Ok(NSPredicateEditor(parent.0))
        } else {
            Err("This NSRuleEditor cannot be downcasted to NSPredicateEditor")
        }
    }
}
impl INSControl for NSPredicateEditor {}
impl INSView for NSPredicateEditor {}
impl PNSAnimatablePropertyContainer for NSPredicateEditor {}
impl PNSUserInterfaceItemIdentification for NSPredicateEditor {}
impl PNSDraggingDestination for NSPredicateEditor {}
impl PNSAppearanceCustomization for NSPredicateEditor {}
impl PNSAccessibilityElement for NSPredicateEditor {}
impl PNSAccessibility for NSPredicateEditor {}
impl INSResponder for NSPredicateEditor {}
impl PNSCoding for NSPredicateEditor {}
impl INSObject for NSPredicateEditor {}
impl PNSObject for NSPredicateEditor {}
impl INSPredicateEditor for NSPredicateEditor {}
pub trait INSPredicateEditor: Sized + std::ops::Deref {
    unsafe fn rowTemplates(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rowTemplates)
    }
    unsafe fn setRowTemplates_(&self, rowTemplates: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRowTemplates : rowTemplates)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPredicateEditorRowTemplate(pub id);
impl std::ops::Deref for NSPredicateEditorRowTemplate {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPredicateEditorRowTemplate {}
impl NSPredicateEditorRowTemplate {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPredicateEditorRowTemplate").unwrap(), alloc) })
    }
}
impl PNSCoding for NSPredicateEditorRowTemplate {}
impl PNSCopying for NSPredicateEditorRowTemplate {}
impl INSObject for NSPredicateEditorRowTemplate {}
impl PNSObject for NSPredicateEditorRowTemplate {}
impl std::convert::TryFrom<NSObject> for NSPredicateEditorRowTemplate {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPredicateEditorRowTemplate, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPredicateEditorRowTemplate").unwrap()) };
        if is_kind_of {
            Ok(NSPredicateEditorRowTemplate(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPredicateEditorRowTemplate")
        }
    }
}
impl INSPredicateEditorRowTemplate for NSPredicateEditorRowTemplate {}
pub trait INSPredicateEditorRowTemplate: Sized + std::ops::Deref {
    unsafe fn matchForPredicate_(&self, predicate: NSPredicate) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, matchForPredicate : predicate)
    }
    unsafe fn setPredicate_(&self, predicate: NSPredicate)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPredicate : predicate)
    }
    unsafe fn predicateWithSubpredicates_(&self, subpredicates: NSArray) -> NSPredicate
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, predicateWithSubpredicates : subpredicates)
    }
    unsafe fn displayableSubpredicatesOfPredicate_(&self, predicate: NSPredicate) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, displayableSubpredicatesOfPredicate : predicate)
    }
    unsafe fn initWithLeftExpressions_rightExpressions_modifier_operators_options_(
        &self,
        leftExpressions: NSArray,
        rightExpressions: NSArray,
        modifier: NSComparisonPredicateModifier,
        operators: NSArray,
        options: NSUInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLeftExpressions : leftExpressions, rightExpressions : rightExpressions, modifier : modifier, operators : operators, options : options)
    }
    unsafe fn initWithLeftExpressions_rightExpressionAttributeType_modifier_operators_options_(
        &self,
        leftExpressions: NSArray,
        attributeType: NSAttributeType,
        modifier: NSComparisonPredicateModifier,
        operators: NSArray,
        options: NSUInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLeftExpressions : leftExpressions, rightExpressionAttributeType : attributeType, modifier : modifier, operators : operators, options : options)
    }
    unsafe fn initWithCompoundTypes_(&self, compoundTypes: NSArray) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCompoundTypes : compoundTypes)
    }
    unsafe fn templateViews(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, templateViews)
    }
    unsafe fn leftExpressions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leftExpressions)
    }
    unsafe fn rightExpressions(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rightExpressions)
    }
    unsafe fn rightExpressionAttributeType(&self) -> NSAttributeType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rightExpressionAttributeType)
    }
    unsafe fn modifier(&self) -> NSComparisonPredicateModifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, modifier)
    }
    unsafe fn operators(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, operators)
    }
    unsafe fn options(&self) -> NSUInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, options)
    }
    unsafe fn compoundTypes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, compoundTypes)
    }
    unsafe fn templatesWithAttributeKeyPaths_inEntityDescription_(
        keyPaths: NSArray,
        entityDescription: NSEntityDescription,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPredicateEditorRowTemplate").unwrap(), templatesWithAttributeKeyPaths : keyPaths, inEntityDescription : entityDescription)
    }
}
pub type NSPathStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPathCell(pub id);
impl std::ops::Deref for NSPathCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPathCell {}
impl NSPathCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPathCell").unwrap(), alloc) })
    }
}
impl PNSMenuItemValidation for NSPathCell {}
impl PNSOpenSavePanelDelegate for NSPathCell {}
impl INSActionCell for NSPathCell {}
impl std::convert::TryFrom<NSActionCell> for NSPathCell {
    type Error = &'static str;
    fn try_from(parent: NSActionCell) -> Result<NSPathCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPathCell").unwrap()) };
        if is_kind_of {
            Ok(NSPathCell(parent.0))
        } else {
            Err("This NSActionCell cannot be downcasted to NSPathCell")
        }
    }
}
impl INSCell for NSPathCell {}
impl PNSCopying for NSPathCell {}
impl PNSCoding for NSPathCell {}
impl PNSUserInterfaceItemIdentification for NSPathCell {}
impl PNSAccessibilityElement for NSPathCell {}
impl PNSAccessibility for NSPathCell {}
impl INSObject for NSPathCell {}
impl PNSObject for NSPathCell {}
impl INSPathCell for NSPathCell {}
pub trait INSPathCell: Sized + std::ops::Deref {
    unsafe fn setObjectValue_(&self, obj: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setObjectValue : obj)
    }
    unsafe fn rectOfPathComponentCell_withFrame_inView_(
        &self,
        cell: NSPathComponentCell,
        frame: NSRect,
        view: NSView,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, rectOfPathComponentCell : cell, withFrame : frame, inView : view)
    }
    unsafe fn pathComponentCellAtPoint_withFrame_inView_(
        &self,
        point: NSPoint,
        frame: NSRect,
        view: NSView,
    ) -> NSPathComponentCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathComponentCellAtPoint : point, withFrame : frame, inView : view)
    }
    unsafe fn mouseEntered_withFrame_inView_(&self, event: NSEvent, frame: NSRect, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseEntered : event, withFrame : frame, inView : view)
    }
    unsafe fn mouseExited_withFrame_inView_(&self, event: NSEvent, frame: NSRect, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, mouseExited : event, withFrame : frame, inView : view)
    }
    unsafe fn pathStyle(&self) -> NSPathStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pathStyle)
    }
    unsafe fn setPathStyle_(&self, pathStyle: NSPathStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPathStyle : pathStyle)
    }
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
    unsafe fn setURL_(&self, URL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setURL : URL)
    }
    unsafe fn allowedTypes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedTypes)
    }
    unsafe fn setAllowedTypes_(&self, allowedTypes: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedTypes : allowedTypes)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn pathComponentCells(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pathComponentCells)
    }
    unsafe fn setPathComponentCells_(&self, pathComponentCells: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPathComponentCells : pathComponentCells)
    }
    unsafe fn clickedPathComponentCell(&self) -> NSPathComponentCell
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickedPathComponentCell)
    }
    unsafe fn doubleAction(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleAction)
    }
    unsafe fn setDoubleAction_(&self, doubleAction: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleAction : doubleAction)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn placeholderString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderString)
    }
    unsafe fn setPlaceholderString_(&self, placeholderString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderString : placeholderString)
    }
    unsafe fn placeholderAttributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderAttributedString)
    }
    unsafe fn setPlaceholderAttributedString_(
        &self,
        placeholderAttributedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderAttributedString : placeholderAttributedString)
    }
    unsafe fn pathComponentCellClass() -> Class
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPathCell").unwrap(), pathComponentCellClass)
    }
}
pub trait PNSPathCellDelegate: Sized + std::ops::Deref {
    unsafe fn pathCell_willDisplayOpenPanel_(&self, pathCell: NSPathCell, openPanel: NSOpenPanel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathCell : pathCell, willDisplayOpenPanel : openPanel)
    }
    unsafe fn pathCell_willPopUpMenu_(&self, pathCell: NSPathCell, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathCell : pathCell, willPopUpMenu : menu)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPathControl(pub id);
impl std::ops::Deref for NSPathControl {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPathControl {}
impl NSPathControl {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPathControl").unwrap(), alloc) })
    }
}
impl INSControl for NSPathControl {}
impl std::convert::TryFrom<NSControl> for NSPathControl {
    type Error = &'static str;
    fn try_from(parent: NSControl) -> Result<NSPathControl, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPathControl").unwrap()) };
        if is_kind_of {
            Ok(NSPathControl(parent.0))
        } else {
            Err("This NSControl cannot be downcasted to NSPathControl")
        }
    }
}
impl INSView for NSPathControl {}
impl PNSAnimatablePropertyContainer for NSPathControl {}
impl PNSUserInterfaceItemIdentification for NSPathControl {}
impl PNSDraggingDestination for NSPathControl {}
impl PNSAppearanceCustomization for NSPathControl {}
impl PNSAccessibilityElement for NSPathControl {}
impl PNSAccessibility for NSPathControl {}
impl INSResponder for NSPathControl {}
impl PNSCoding for NSPathControl {}
impl INSObject for NSPathControl {}
impl PNSObject for NSPathControl {}
impl INSPathControl for NSPathControl {}
pub trait INSPathControl: Sized + std::ops::Deref {
    unsafe fn setDraggingSourceOperationMask_forLocal_(&self, mask: NSDragOperation, isLocal: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDraggingSourceOperationMask : mask, forLocal : isLocal)
    }
    unsafe fn isEditable(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEditable)
    }
    unsafe fn setEditable_(&self, editable: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEditable : editable)
    }
    unsafe fn allowedTypes(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedTypes)
    }
    unsafe fn setAllowedTypes_(&self, allowedTypes: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedTypes : allowedTypes)
    }
    unsafe fn placeholderString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderString)
    }
    unsafe fn setPlaceholderString_(&self, placeholderString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderString : placeholderString)
    }
    unsafe fn placeholderAttributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, placeholderAttributedString)
    }
    unsafe fn setPlaceholderAttributedString_(
        &self,
        placeholderAttributedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPlaceholderAttributedString : placeholderAttributedString)
    }
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
    unsafe fn setURL_(&self, URL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setURL : URL)
    }
    unsafe fn doubleAction(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, doubleAction)
    }
    unsafe fn setDoubleAction_(&self, doubleAction: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDoubleAction : doubleAction)
    }
    unsafe fn pathStyle(&self) -> NSPathStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pathStyle)
    }
    unsafe fn setPathStyle_(&self, pathStyle: NSPathStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPathStyle : pathStyle)
    }
    unsafe fn clickedPathItem(&self) -> NSPathControlItem
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, clickedPathItem)
    }
    unsafe fn pathItems(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pathItems)
    }
    unsafe fn setPathItems_(&self, pathItems: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPathItems : pathItems)
    }
    unsafe fn backgroundColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, backgroundColor)
    }
    unsafe fn setBackgroundColor_(&self, backgroundColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBackgroundColor : backgroundColor)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn menu(&self) -> NSMenu
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, menu)
    }
    unsafe fn setMenu_(&self, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMenu : menu)
    }
}
pub trait PNSPathControlDelegate: Sized + std::ops::Deref {
    unsafe fn pathControl_shouldDragItem_withPasteboard_(
        &self,
        pathControl: NSPathControl,
        pathItem: NSPathControlItem,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathControl : pathControl, shouldDragItem : pathItem, withPasteboard : pasteboard)
    }
    unsafe fn pathControl_shouldDragPathComponentCell_withPasteboard_(
        &self,
        pathControl: NSPathControl,
        pathComponentCell: NSPathComponentCell,
        pasteboard: NSPasteboard,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathControl : pathControl, shouldDragPathComponentCell : pathComponentCell, withPasteboard : pasteboard)
    }
    unsafe fn pathControl_validateDrop_(
        &self,
        pathControl: NSPathControl,
        info: *mut u64,
    ) -> NSDragOperation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathControl : pathControl, validateDrop : info)
    }
    unsafe fn pathControl_acceptDrop_(&self, pathControl: NSPathControl, info: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathControl : pathControl, acceptDrop : info)
    }
    unsafe fn pathControl_willDisplayOpenPanel_(
        &self,
        pathControl: NSPathControl,
        openPanel: NSOpenPanel,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathControl : pathControl, willDisplayOpenPanel : openPanel)
    }
    unsafe fn pathControl_willPopUpMenu_(&self, pathControl: NSPathControl, menu: NSMenu)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pathControl : pathControl, willPopUpMenu : menu)
    }
}
impl NSPathControl_NSDeprecated for NSPathControl {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPathComponentCell(pub id);
impl std::ops::Deref for NSPathComponentCell {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPathComponentCell {}
impl NSPathComponentCell {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPathComponentCell").unwrap(), alloc) })
    }
}
impl INSTextFieldCell for NSPathComponentCell {}
impl std::convert::TryFrom<NSTextFieldCell> for NSPathComponentCell {
    type Error = &'static str;
    fn try_from(parent: NSTextFieldCell) -> Result<NSPathComponentCell, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPathComponentCell").unwrap()) };
        if is_kind_of {
            Ok(NSPathComponentCell(parent.0))
        } else {
            Err("This NSTextFieldCell cannot be downcasted to NSPathComponentCell")
        }
    }
}
impl INSActionCell for NSPathComponentCell {}
impl INSCell for NSPathComponentCell {}
impl PNSCopying for NSPathComponentCell {}
impl PNSCoding for NSPathComponentCell {}
impl PNSUserInterfaceItemIdentification for NSPathComponentCell {}
impl PNSAccessibilityElement for NSPathComponentCell {}
impl PNSAccessibility for NSPathComponentCell {}
impl INSObject for NSPathComponentCell {}
impl PNSObject for NSPathComponentCell {}
impl INSPathComponentCell for NSPathComponentCell {}
pub trait INSPathComponentCell: Sized + std::ops::Deref {
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
    unsafe fn setURL_(&self, URL: NSURL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setURL : URL)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPathControlItem(pub id);
impl std::ops::Deref for NSPathControlItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPathControlItem {}
impl NSPathControlItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPathControlItem").unwrap(), alloc) })
    }
}
impl INSObject for NSPathControlItem {}
impl PNSObject for NSPathControlItem {}
impl std::convert::TryFrom<NSObject> for NSPathControlItem {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPathControlItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPathControlItem").unwrap()) };
        if is_kind_of {
            Ok(NSPathControlItem(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPathControlItem")
        }
    }
}
impl INSPathControlItem for NSPathControlItem {}
pub trait INSPathControlItem: Sized + std::ops::Deref {
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn attributedTitle(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedTitle)
    }
    unsafe fn setAttributedTitle_(&self, attributedTitle: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedTitle : attributedTitle)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn URL(&self) -> NSURL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, URL)
    }
}
pub type NSPageControllerObjectIdentifier = NSString;
pub type NSPageControllerTransitionStyle = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPageController(pub id);
impl std::ops::Deref for NSPageController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPageController {}
impl NSPageController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPageController").unwrap(), alloc) })
    }
}
impl PNSAnimatablePropertyContainer for NSPageController {}
impl PNSCoding for NSPageController {}
impl INSViewController for NSPageController {}
impl PNSEditor for NSPageController {}
impl PNSSeguePerforming for NSPageController {}
impl PNSUserInterfaceItemIdentification for NSPageController {}
impl std::convert::TryFrom<NSViewController> for NSPageController {
    type Error = &'static str;
    fn try_from(parent: NSViewController) -> Result<NSPageController, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPageController").unwrap()) };
        if is_kind_of {
            Ok(NSPageController(parent.0))
        } else {
            Err("This NSViewController cannot be downcasted to NSPageController")
        }
    }
}
impl INSResponder for NSPageController {}
impl INSObject for NSPageController {}
impl PNSObject for NSPageController {}
impl INSPageController for NSPageController {}
pub trait INSPageController: Sized + std::ops::Deref {
    unsafe fn navigateForwardToObject_(&self, object: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, navigateForwardToObject : object)
    }
    unsafe fn completeTransition(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completeTransition)
    }
    unsafe fn navigateBack_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, navigateBack : sender)
    }
    unsafe fn navigateForward_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, navigateForward : sender)
    }
    unsafe fn takeSelectedIndexFrom_(&self, sender: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, takeSelectedIndexFrom : sender)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn selectedViewController(&self) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedViewController)
    }
    unsafe fn transitionStyle(&self) -> NSPageControllerTransitionStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, transitionStyle)
    }
    unsafe fn setTransitionStyle_(&self, transitionStyle: NSPageControllerTransitionStyle)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTransitionStyle : transitionStyle)
    }
    unsafe fn arrangedObjects(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, arrangedObjects)
    }
    unsafe fn setArrangedObjects_(&self, arrangedObjects: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setArrangedObjects : arrangedObjects)
    }
    unsafe fn selectedIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedIndex)
    }
    unsafe fn setSelectedIndex_(&self, selectedIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedIndex : selectedIndex)
    }
}
pub trait PNSPageControllerDelegate: Sized + std::ops::Deref {
    unsafe fn pageController_identifierForObject_(
        &self,
        pageController: NSPageController,
        object: id,
    ) -> NSPageControllerObjectIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageController : pageController, identifierForObject : object)
    }
    unsafe fn pageController_viewControllerForIdentifier_(
        &self,
        pageController: NSPageController,
        identifier: NSString,
    ) -> NSViewController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageController : pageController, viewControllerForIdentifier : identifier)
    }
    unsafe fn pageController_frameForObject_(
        &self,
        pageController: NSPageController,
        object: id,
    ) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageController : pageController, frameForObject : object)
    }
    unsafe fn pageController_prepareViewController_withObject_(
        &self,
        pageController: NSPageController,
        viewController: NSViewController,
        object: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageController : pageController, prepareViewController : viewController, withObject : object)
    }
    unsafe fn pageController_didTransitionToObject_(
        &self,
        pageController: NSPageController,
        object: id,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageController : pageController, didTransitionToObject : object)
    }
    unsafe fn pageControllerWillStartLiveTransition_(&self, pageController: NSPageController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageControllerWillStartLiveTransition : pageController)
    }
    unsafe fn pageControllerDidEndLiveTransition_(&self, pageController: NSPageController)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, pageControllerDidEndLiveTransition : pageController)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextInputContext(pub id);
impl std::ops::Deref for NSTextInputContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextInputContext {}
impl NSTextInputContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextInputContext").unwrap(), alloc) })
    }
}
impl INSObject for NSTextInputContext {}
impl PNSObject for NSTextInputContext {}
impl std::convert::TryFrom<NSObject> for NSTextInputContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextInputContext, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextInputContext").unwrap()) };
        if is_kind_of {
            Ok(NSTextInputContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextInputContext")
        }
    }
}
impl INSTextInputContext for NSTextInputContext {}
pub trait INSTextInputContext: Sized + std::ops::Deref {
    unsafe fn initWithClient_(&self, client: *mut u64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithClient : client)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn activate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, activate)
    }
    unsafe fn deactivate(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, deactivate)
    }
    unsafe fn handleEvent_(&self, event: NSEvent) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, handleEvent : event)
    }
    unsafe fn discardMarkedText(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, discardMarkedText)
    }
    unsafe fn invalidateCharacterCoordinates(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateCharacterCoordinates)
    }
    unsafe fn textInputClientWillStartScrollingOrZooming(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textInputClientWillStartScrollingOrZooming)
    }
    unsafe fn textInputClientDidEndScrollingOrZooming(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textInputClientDidEndScrollingOrZooming)
    }
    unsafe fn textInputClientDidUpdateSelection(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textInputClientDidUpdateSelection)
    }
    unsafe fn textInputClientDidScroll(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textInputClientDidScroll)
    }
    unsafe fn client(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, client)
    }
    unsafe fn acceptsGlyphInfo(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, acceptsGlyphInfo)
    }
    unsafe fn setAcceptsGlyphInfo_(&self, acceptsGlyphInfo: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAcceptsGlyphInfo : acceptsGlyphInfo)
    }
    unsafe fn allowedInputSourceLocales(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowedInputSourceLocales)
    }
    unsafe fn setAllowedInputSourceLocales_(&self, allowedInputSourceLocales: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowedInputSourceLocales : allowedInputSourceLocales)
    }
    unsafe fn keyboardInputSources(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, keyboardInputSources)
    }
    unsafe fn selectedKeyboardInputSource(&self) -> NSTextInputSourceIdentifier
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedKeyboardInputSource)
    }
    unsafe fn setSelectedKeyboardInputSource_(&self, selectedKeyboardInputSource: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedKeyboardInputSource : selectedKeyboardInputSource)
    }
    unsafe fn localizedNameForInputSource_(inputSourceIdentifier: NSString) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextInputContext").unwrap(), localizedNameForInputSource : inputSourceIdentifier)
    }
    unsafe fn currentInputContext() -> NSTextInputContext
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextInputContext").unwrap(), currentInputContext)
    }
}
pub trait PNSUserInterfaceItemSearching: Sized + std::ops::Deref {
    unsafe fn searchForItemsWithSearchString_resultLimit_matchedItemHandler_(
        &self,
        searchString: NSString,
        resultLimit: NSInteger,
        handleMatchedItems: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, searchForItemsWithSearchString : searchString, resultLimit : resultLimit, matchedItemHandler : handleMatchedItems)
    }
    unsafe fn localizedTitlesForItem_(&self, item: id) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, localizedTitlesForItem : item)
    }
    unsafe fn performActionForItem_(&self, item: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performActionForItem : item)
    }
    unsafe fn showAllHelpTopicsForSearchString_(&self, searchString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, showAllHelpTopicsForSearchString : searchString)
    }
}
impl NSApplication_NSUserInterfaceItemSearching for NSApplication {}
pub trait PNSWindowRestoration: Sized + std::ops::Deref {
    unsafe fn restoreWindowWithIdentifier_state_completionHandler_(
        identifier: NSString,
        state: NSCoder,
        completionHandler: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWindowRestoration").unwrap(), restoreWindowWithIdentifier : identifier, state : state, completionHandler : completionHandler)
    }
}
impl NSDocumentController_NSWindowRestoration for NSDocumentController {}
impl NSApplication_NSWindowRestoration for NSApplication {}
impl NSWindow_NSUserInterfaceRestoration for NSWindow {}
impl NSResponder_NSRestorableState for NSResponder {}
impl NSApplication_NSRestorableStateExtension for NSApplication {}
impl NSDocument_NSRestorableState for NSDocument {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextAlternatives(pub id);
impl std::ops::Deref for NSTextAlternatives {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextAlternatives {}
impl NSTextAlternatives {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextAlternatives").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextAlternatives {}
impl INSObject for NSTextAlternatives {}
impl PNSObject for NSTextAlternatives {}
impl std::convert::TryFrom<NSObject> for NSTextAlternatives {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextAlternatives, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextAlternatives").unwrap()) };
        if is_kind_of {
            Ok(NSTextAlternatives(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextAlternatives")
        }
    }
}
impl INSTextAlternatives for NSTextAlternatives {}
pub trait INSTextAlternatives: Sized + std::ops::Deref {
    unsafe fn initWithPrimaryString_alternativeStrings_(
        &self,
        primaryString: NSString,
        alternativeStrings: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPrimaryString : primaryString, alternativeStrings : alternativeStrings)
    }
    unsafe fn noteSelectedAlternativeString_(&self, alternativeString: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, noteSelectedAlternativeString : alternativeString)
    }
    unsafe fn primaryString(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, primaryString)
    }
    unsafe fn alternativeStrings(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, alternativeStrings)
    }
}
pub type NSVisualEffectMaterial = NSInteger;
pub type NSVisualEffectBlendingMode = NSInteger;
pub type NSVisualEffectState = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSVisualEffectView(pub id);
impl std::ops::Deref for NSVisualEffectView {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSVisualEffectView {}
impl NSVisualEffectView {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSVisualEffectView").unwrap(), alloc) })
    }
}
impl INSView for NSVisualEffectView {}
impl PNSAnimatablePropertyContainer for NSVisualEffectView {}
impl PNSUserInterfaceItemIdentification for NSVisualEffectView {}
impl PNSDraggingDestination for NSVisualEffectView {}
impl PNSAppearanceCustomization for NSVisualEffectView {}
impl PNSAccessibilityElement for NSVisualEffectView {}
impl PNSAccessibility for NSVisualEffectView {}
impl std::convert::TryFrom<NSView> for NSVisualEffectView {
    type Error = &'static str;
    fn try_from(parent: NSView) -> Result<NSVisualEffectView, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSVisualEffectView").unwrap()) };
        if is_kind_of {
            Ok(NSVisualEffectView(parent.0))
        } else {
            Err("This NSView cannot be downcasted to NSVisualEffectView")
        }
    }
}
impl INSResponder for NSVisualEffectView {}
impl PNSCoding for NSVisualEffectView {}
impl INSObject for NSVisualEffectView {}
impl PNSObject for NSVisualEffectView {}
impl INSVisualEffectView for NSVisualEffectView {}
pub trait INSVisualEffectView: Sized + std::ops::Deref {
    unsafe fn viewDidMoveToWindow(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidMoveToWindow)
    }
    unsafe fn viewWillMoveToWindow_(&self, newWindow: NSWindow)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewWillMoveToWindow : newWindow)
    }
    unsafe fn material(&self) -> NSVisualEffectMaterial
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, material)
    }
    unsafe fn setMaterial_(&self, material: NSVisualEffectMaterial)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaterial : material)
    }
    unsafe fn interiorBackgroundStyle(&self) -> NSBackgroundStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, interiorBackgroundStyle)
    }
    unsafe fn blendingMode(&self) -> NSVisualEffectBlendingMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, blendingMode)
    }
    unsafe fn setBlendingMode_(&self, blendingMode: NSVisualEffectBlendingMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBlendingMode : blendingMode)
    }
    unsafe fn state(&self) -> NSVisualEffectState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn setState_(&self, state: NSVisualEffectState)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setState : state)
    }
    unsafe fn maskImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maskImage)
    }
    unsafe fn setMaskImage_(&self, maskImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaskImage : maskImage)
    }
    unsafe fn isEmphasized(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEmphasized)
    }
    unsafe fn setEmphasized_(&self, emphasized: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEmphasized : emphasized)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSItemBadge(pub id);
impl std::ops::Deref for NSItemBadge {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSItemBadge {}
impl NSItemBadge {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSItemBadge").unwrap(), alloc) })
    }
}
impl INSObject for NSItemBadge {}
impl PNSObject for NSItemBadge {}
impl std::convert::TryFrom<NSObject> for NSItemBadge {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSItemBadge, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSItemBadge").unwrap()) };
        if is_kind_of {
            Ok(NSItemBadge(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSItemBadge")
        }
    }
}
impl INSItemBadge for NSItemBadge {}
pub trait INSItemBadge: Sized + std::ops::Deref {
    unsafe fn text(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, text)
    }
    unsafe fn badgeWithCount_(count: NSInteger) -> NSItemBadge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSItemBadge").unwrap(), badgeWithCount : count)
    }
    unsafe fn badgeWithText_(text: NSString) -> NSItemBadge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSItemBadge").unwrap(), badgeWithText : text)
    }
    unsafe fn indicatorBadge() -> NSItemBadge
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSItemBadge").unwrap(), indicatorBadge)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTitlebarAccessoryViewController(pub id);
impl std::ops::Deref for NSTitlebarAccessoryViewController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTitlebarAccessoryViewController {}
impl NSTitlebarAccessoryViewController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTitlebarAccessoryViewController").unwrap(), alloc) })
    }
}
impl PNSAnimationDelegate for NSTitlebarAccessoryViewController {}
impl PNSAnimatablePropertyContainer for NSTitlebarAccessoryViewController {}
impl INSViewController for NSTitlebarAccessoryViewController {}
impl PNSEditor for NSTitlebarAccessoryViewController {}
impl PNSSeguePerforming for NSTitlebarAccessoryViewController {}
impl PNSUserInterfaceItemIdentification for NSTitlebarAccessoryViewController {}
impl std::convert::TryFrom<NSViewController> for NSTitlebarAccessoryViewController {
    type Error = &'static str;
    fn try_from(
        parent: NSViewController,
    ) -> Result<NSTitlebarAccessoryViewController, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTitlebarAccessoryViewController").unwrap())
        };
        if is_kind_of {
            Ok(NSTitlebarAccessoryViewController(parent.0))
        } else {
            Err("This NSViewController cannot be downcasted to NSTitlebarAccessoryViewController")
        }
    }
}
impl INSResponder for NSTitlebarAccessoryViewController {}
impl PNSCoding for NSTitlebarAccessoryViewController {}
impl INSObject for NSTitlebarAccessoryViewController {}
impl PNSObject for NSTitlebarAccessoryViewController {}
impl INSTitlebarAccessoryViewController for NSTitlebarAccessoryViewController {}
pub trait INSTitlebarAccessoryViewController: Sized + std::ops::Deref {
    unsafe fn viewWillAppear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewWillAppear)
    }
    unsafe fn viewDidAppear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidAppear)
    }
    unsafe fn viewDidDisappear(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewDidDisappear)
    }
    unsafe fn layoutAttribute(&self) -> NSLayoutAttribute
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutAttribute)
    }
    unsafe fn setLayoutAttribute_(&self, layoutAttribute: NSLayoutAttribute)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayoutAttribute : layoutAttribute)
    }
    unsafe fn fullScreenMinHeight(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, fullScreenMinHeight)
    }
    unsafe fn setFullScreenMinHeight_(&self, fullScreenMinHeight: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setFullScreenMinHeight : fullScreenMinHeight)
    }
    unsafe fn isHidden(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isHidden)
    }
    unsafe fn setHidden_(&self, hidden: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setHidden : hidden)
    }
    unsafe fn automaticallyAdjustsSize(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallyAdjustsSize)
    }
    unsafe fn setAutomaticallyAdjustsSize_(&self, automaticallyAdjustsSize: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallyAdjustsSize : automaticallyAdjustsSize)
    }
    unsafe fn preferredScrollEdgeEffectStyle(&self) -> NSScrollEdgeEffectStyle
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredScrollEdgeEffectStyle)
    }
    unsafe fn setPreferredScrollEdgeEffectStyle_(
        &self,
        preferredScrollEdgeEffectStyle: NSScrollEdgeEffectStyle,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredScrollEdgeEffectStyle : preferredScrollEdgeEffectStyle)
    }
}
pub type NSHapticFeedbackPattern = NSInteger;
pub type NSHapticFeedbackPerformanceTime = NSUInteger;
pub trait PNSHapticFeedbackPerformer: Sized + std::ops::Deref {
    unsafe fn performFeedbackPattern_performanceTime_(
        &self,
        pattern: NSHapticFeedbackPattern,
        performanceTime: NSHapticFeedbackPerformanceTime,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performFeedbackPattern : pattern, performanceTime : performanceTime)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSHapticFeedbackManager(pub id);
impl std::ops::Deref for NSHapticFeedbackManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSHapticFeedbackManager {}
impl NSHapticFeedbackManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSHapticFeedbackManager").unwrap(), alloc) })
    }
}
impl INSObject for NSHapticFeedbackManager {}
impl PNSObject for NSHapticFeedbackManager {}
impl std::convert::TryFrom<NSObject> for NSHapticFeedbackManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSHapticFeedbackManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSHapticFeedbackManager").unwrap()) };
        if is_kind_of {
            Ok(NSHapticFeedbackManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSHapticFeedbackManager")
        }
    }
}
impl INSHapticFeedbackManager for NSHapticFeedbackManager {}
pub trait INSHapticFeedbackManager: Sized + std::ops::Deref {
    unsafe fn defaultPerformer() -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSHapticFeedbackManager").unwrap(), defaultPerformer)
    }
}
pub trait PNSAlignmentFeedbackToken: Sized + std::ops::Deref {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAlignmentFeedbackFilter(pub id);
impl std::ops::Deref for NSAlignmentFeedbackFilter {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAlignmentFeedbackFilter {}
impl NSAlignmentFeedbackFilter {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAlignmentFeedbackFilter").unwrap(), alloc) })
    }
}
impl INSObject for NSAlignmentFeedbackFilter {}
impl PNSObject for NSAlignmentFeedbackFilter {}
impl std::convert::TryFrom<NSObject> for NSAlignmentFeedbackFilter {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAlignmentFeedbackFilter, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAlignmentFeedbackFilter").unwrap()) };
        if is_kind_of {
            Ok(NSAlignmentFeedbackFilter(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAlignmentFeedbackFilter")
        }
    }
}
impl INSAlignmentFeedbackFilter for NSAlignmentFeedbackFilter {}
pub trait INSAlignmentFeedbackFilter: Sized + std::ops::Deref {
    unsafe fn updateWithEvent_(&self, event: NSEvent)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateWithEvent : event)
    }
    unsafe fn updateWithPanRecognizer_(&self, panRecognizer: NSPanGestureRecognizer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateWithPanRecognizer : panRecognizer)
    }
    unsafe fn alignmentFeedbackTokenForMovementInView_previousPoint_alignedPoint_defaultPoint_(
        &self,
        view: NSView,
        previousPoint: NSPoint,
        alignedPoint: NSPoint,
        defaultPoint: NSPoint,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignmentFeedbackTokenForMovementInView : view, previousPoint : previousPoint, alignedPoint : alignedPoint, defaultPoint : defaultPoint)
    }
    unsafe fn alignmentFeedbackTokenForHorizontalMovementInView_previousX_alignedX_defaultX_(
        &self,
        view: NSView,
        previousX: CGFloat,
        alignedX: CGFloat,
        defaultX: CGFloat,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignmentFeedbackTokenForHorizontalMovementInView : view, previousX : previousX, alignedX : alignedX, defaultX : defaultX)
    }
    unsafe fn alignmentFeedbackTokenForVerticalMovementInView_previousY_alignedY_defaultY_(
        &self,
        view: NSView,
        previousY: CGFloat,
        alignedY: CGFloat,
        defaultY: CGFloat,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, alignmentFeedbackTokenForVerticalMovementInView : view, previousY : previousY, alignedY : alignedY, defaultY : defaultY)
    }
    unsafe fn performFeedback_performanceTime_(
        &self,
        alignmentFeedbackTokens: NSArray,
        performanceTime: NSHapticFeedbackPerformanceTime,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performFeedback : alignmentFeedbackTokens, performanceTime : performanceTime)
    }
    unsafe fn inputEventMask() -> NSEventMask
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAlignmentFeedbackFilter").unwrap(), inputEventMask)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPressureConfiguration(pub id);
impl std::ops::Deref for NSPressureConfiguration {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPressureConfiguration {}
impl NSPressureConfiguration {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPressureConfiguration").unwrap(), alloc) })
    }
}
impl INSObject for NSPressureConfiguration {}
impl PNSObject for NSPressureConfiguration {}
impl std::convert::TryFrom<NSObject> for NSPressureConfiguration {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSPressureConfiguration, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPressureConfiguration").unwrap()) };
        if is_kind_of {
            Ok(NSPressureConfiguration(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSPressureConfiguration")
        }
    }
}
impl INSPressureConfiguration for NSPressureConfiguration {}
pub trait INSPressureConfiguration: Sized + std::ops::Deref {
    unsafe fn initWithPressureBehavior_(&self, pressureBehavior: NSPressureBehavior) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithPressureBehavior : pressureBehavior)
    }
    unsafe fn set(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, set)
    }
    unsafe fn pressureBehavior(&self) -> NSPressureBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, pressureBehavior)
    }
}
impl NSView_NSPressureConfiguration for NSView {}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSButtonTouchBarItem(pub id);
impl std::ops::Deref for NSButtonTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSButtonTouchBarItem {}
impl NSButtonTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSButtonTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSButtonTouchBarItem {}
impl PNSCoding for NSButtonTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSButtonTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSButtonTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSButtonTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSButtonTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSButtonTouchBarItem")
        }
    }
}
impl INSObject for NSButtonTouchBarItem {}
impl PNSObject for NSButtonTouchBarItem {}
impl INSButtonTouchBarItem for NSButtonTouchBarItem {}
pub trait INSButtonTouchBarItem: Sized + std::ops::Deref {
    unsafe fn title(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, title)
    }
    unsafe fn setTitle_(&self, title: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTitle : title)
    }
    unsafe fn image(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, image)
    }
    unsafe fn setImage_(&self, image: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image)
    }
    unsafe fn bezelColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bezelColor)
    }
    unsafe fn setBezelColor_(&self, bezelColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setBezelColor : bezelColor)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
    unsafe fn buttonTouchBarItemWithIdentifier_title_target_action_(
        identifier: NSString,
        title: NSString,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButtonTouchBarItem").unwrap(), buttonTouchBarItemWithIdentifier : identifier, title : title, target : target, action : action)
    }
    unsafe fn buttonTouchBarItemWithIdentifier_image_target_action_(
        identifier: NSString,
        image: NSImage,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButtonTouchBarItem").unwrap(), buttonTouchBarItemWithIdentifier : identifier, image : image, target : target, action : action)
    }
    unsafe fn buttonTouchBarItemWithIdentifier_title_image_target_action_(
        identifier: NSString,
        title: NSString,
        image: NSImage,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSButtonTouchBarItem").unwrap(), buttonTouchBarItemWithIdentifier : identifier, title : title, image : image, target : target, action : action)
    }
}
pub type NSPickerTouchBarItemSelectionMode = NSInteger;
pub type NSPickerTouchBarItemControlRepresentation = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSPickerTouchBarItem(pub id);
impl std::ops::Deref for NSPickerTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSPickerTouchBarItem {}
impl NSPickerTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSPickerTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSPickerTouchBarItem {}
impl PNSCoding for NSPickerTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSPickerTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSPickerTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSPickerTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSPickerTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSPickerTouchBarItem")
        }
    }
}
impl INSObject for NSPickerTouchBarItem {}
impl PNSObject for NSPickerTouchBarItem {}
impl INSPickerTouchBarItem for NSPickerTouchBarItem {}
pub trait INSPickerTouchBarItem: Sized + std::ops::Deref {
    unsafe fn setImage_atIndex_(&self, image: NSImage, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setImage : image, atIndex : index)
    }
    unsafe fn imageAtIndex_(&self, index: NSInteger) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageAtIndex : index)
    }
    unsafe fn setLabel_atIndex_(&self, label: NSString, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label, atIndex : index)
    }
    unsafe fn labelAtIndex_(&self, index: NSInteger) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, labelAtIndex : index)
    }
    unsafe fn setEnabled_atIndex_(&self, enabled: BOOL, index: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled, atIndex : index)
    }
    unsafe fn isEnabledAtIndex_(&self, index: NSInteger) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isEnabledAtIndex : index)
    }
    unsafe fn controlRepresentation(&self) -> NSPickerTouchBarItemControlRepresentation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, controlRepresentation)
    }
    unsafe fn setControlRepresentation_(
        &self,
        controlRepresentation: NSPickerTouchBarItemControlRepresentation,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setControlRepresentation : controlRepresentation)
    }
    unsafe fn collapsedRepresentationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapsedRepresentationLabel)
    }
    unsafe fn setCollapsedRepresentationLabel_(&self, collapsedRepresentationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsedRepresentationLabel : collapsedRepresentationLabel)
    }
    unsafe fn collapsedRepresentationImage(&self) -> NSImage
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, collapsedRepresentationImage)
    }
    unsafe fn setCollapsedRepresentationImage_(&self, collapsedRepresentationImage: NSImage)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCollapsedRepresentationImage : collapsedRepresentationImage)
    }
    unsafe fn selectedIndex(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectedIndex)
    }
    unsafe fn setSelectedIndex_(&self, selectedIndex: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectedIndex : selectedIndex)
    }
    unsafe fn selectionColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionColor)
    }
    unsafe fn setSelectionColor_(&self, selectionColor: NSColor)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionColor : selectionColor)
    }
    unsafe fn selectionMode(&self) -> NSPickerTouchBarItemSelectionMode
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, selectionMode)
    }
    unsafe fn setSelectionMode_(&self, selectionMode: NSPickerTouchBarItemSelectionMode)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSelectionMode : selectionMode)
    }
    unsafe fn numberOfOptions(&self) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, numberOfOptions)
    }
    unsafe fn setNumberOfOptions_(&self, numberOfOptions: NSInteger)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setNumberOfOptions : numberOfOptions)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn isEnabled(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEnabled)
    }
    unsafe fn setEnabled_(&self, enabled: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEnabled : enabled)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
    unsafe fn pickerTouchBarItemWithIdentifier_labels_selectionMode_target_action_(
        identifier: NSString,
        labels: NSArray,
        selectionMode: NSPickerTouchBarItemSelectionMode,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPickerTouchBarItem").unwrap(), pickerTouchBarItemWithIdentifier : identifier, labels : labels, selectionMode : selectionMode, target : target, action : action)
    }
    unsafe fn pickerTouchBarItemWithIdentifier_images_selectionMode_target_action_(
        identifier: NSString,
        images: NSArray,
        selectionMode: NSPickerTouchBarItemSelectionMode,
        target: id,
        action: objc2::runtime::Sel,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSPickerTouchBarItem").unwrap(), pickerTouchBarItemWithIdentifier : identifier, images : images, selectionMode : selectionMode, target : target, action : action)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSStepperTouchBarItem(pub id);
impl std::ops::Deref for NSStepperTouchBarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSStepperTouchBarItem {}
impl NSStepperTouchBarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSStepperTouchBarItem").unwrap(), alloc) })
    }
}
impl INSTouchBarItem for NSStepperTouchBarItem {}
impl PNSCoding for NSStepperTouchBarItem {}
impl std::convert::TryFrom<NSTouchBarItem> for NSStepperTouchBarItem {
    type Error = &'static str;
    fn try_from(parent: NSTouchBarItem) -> Result<NSStepperTouchBarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSStepperTouchBarItem").unwrap()) };
        if is_kind_of {
            Ok(NSStepperTouchBarItem(parent.0))
        } else {
            Err("This NSTouchBarItem cannot be downcasted to NSStepperTouchBarItem")
        }
    }
}
impl INSObject for NSStepperTouchBarItem {}
impl PNSObject for NSStepperTouchBarItem {}
impl INSStepperTouchBarItem for NSStepperTouchBarItem {}
pub trait INSStepperTouchBarItem: Sized + std::ops::Deref {
    unsafe fn maxValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, maxValue)
    }
    unsafe fn setMaxValue_(&self, maxValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMaxValue : maxValue)
    }
    unsafe fn minValue(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, minValue)
    }
    unsafe fn setMinValue_(&self, minValue: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setMinValue : minValue)
    }
    unsafe fn increment(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, increment)
    }
    unsafe fn setIncrement_(&self, increment: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncrement : increment)
    }
    unsafe fn value(&self) -> f64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, value)
    }
    unsafe fn setValue_(&self, value: f64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setValue : value)
    }
    unsafe fn target(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, target)
    }
    unsafe fn setTarget_(&self, target: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTarget : target)
    }
    unsafe fn action(&self) -> objc2::runtime::Sel
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, action)
    }
    unsafe fn setAction_(&self, action: objc2::runtime::Sel)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAction : action)
    }
    unsafe fn customizationLabel(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, customizationLabel)
    }
    unsafe fn setCustomizationLabel_(&self, customizationLabel: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCustomizationLabel : customizationLabel)
    }
    unsafe fn stepperTouchBarItemWithIdentifier_formatter_(
        identifier: NSString,
        formatter: NSFormatter,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStepperTouchBarItem").unwrap(), stepperTouchBarItemWithIdentifier : identifier, formatter : formatter)
    }
    unsafe fn stepperTouchBarItemWithIdentifier_drawingHandler_(
        identifier: NSString,
        drawingHandler: *mut ::std::os::raw::c_void,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSStepperTouchBarItem").unwrap(), stepperTouchBarItemWithIdentifier : identifier, drawingHandler : drawingHandler)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTintConfiguration(pub id);
impl std::ops::Deref for NSTintConfiguration {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTintConfiguration {}
impl NSTintConfiguration {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTintConfiguration").unwrap(), alloc) })
    }
}
impl PNSCopying for NSTintConfiguration {}
impl PNSSecureCoding for NSTintConfiguration {}
impl INSObject for NSTintConfiguration {}
impl PNSObject for NSTintConfiguration {}
impl std::convert::TryFrom<NSObject> for NSTintConfiguration {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTintConfiguration, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTintConfiguration").unwrap()) };
        if is_kind_of {
            Ok(NSTintConfiguration(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTintConfiguration")
        }
    }
}
impl INSTintConfiguration for NSTintConfiguration {}
pub trait INSTintConfiguration: Sized + std::ops::Deref {
    unsafe fn baseTintColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, baseTintColor)
    }
    unsafe fn equivalentContentTintColor(&self) -> NSColor
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, equivalentContentTintColor)
    }
    unsafe fn adaptsToUserAccentColor(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, adaptsToUserAccentColor)
    }
    unsafe fn tintConfigurationWithPreferredColor_(color: NSColor) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTintConfiguration").unwrap(), tintConfigurationWithPreferredColor : color)
    }
    unsafe fn tintConfigurationWithFixedColor_(color: NSColor) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTintConfiguration").unwrap(), tintConfigurationWithFixedColor : color)
    }
    unsafe fn defaultTintConfiguration() -> NSTintConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTintConfiguration").unwrap(), defaultTintConfiguration)
    }
    unsafe fn monochromeTintConfiguration() -> NSTintConfiguration
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTintConfiguration").unwrap(), monochromeTintConfiguration)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSSearchToolbarItem(pub id);
impl std::ops::Deref for NSSearchToolbarItem {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSSearchToolbarItem {}
impl NSSearchToolbarItem {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSSearchToolbarItem").unwrap(), alloc) })
    }
}
impl INSToolbarItem for NSSearchToolbarItem {}
impl PNSCopying for NSSearchToolbarItem {}
impl std::convert::TryFrom<NSToolbarItem> for NSSearchToolbarItem {
    type Error = &'static str;
    fn try_from(parent: NSToolbarItem) -> Result<NSSearchToolbarItem, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSSearchToolbarItem").unwrap()) };
        if is_kind_of {
            Ok(NSSearchToolbarItem(parent.0))
        } else {
            Err("This NSToolbarItem cannot be downcasted to NSSearchToolbarItem")
        }
    }
}
impl INSObject for NSSearchToolbarItem {}
impl PNSObject for NSSearchToolbarItem {}
impl INSSearchToolbarItem for NSSearchToolbarItem {}
pub trait INSSearchToolbarItem: Sized + std::ops::Deref {
    unsafe fn beginSearchInteraction(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, beginSearchInteraction)
    }
    unsafe fn endSearchInteraction(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, endSearchInteraction)
    }
    unsafe fn searchField(&self) -> NSSearchField
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, searchField)
    }
    unsafe fn setSearchField_(&self, searchField: NSSearchField)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSearchField : searchField)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn setView_(&self, view: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setView : view)
    }
    unsafe fn resignsFirstResponderWithCancel(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resignsFirstResponderWithCancel)
    }
    unsafe fn setResignsFirstResponderWithCancel_(&self, resignsFirstResponderWithCancel: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResignsFirstResponderWithCancel : resignsFirstResponderWithCancel)
    }
    unsafe fn preferredWidthForSearchField(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredWidthForSearchField)
    }
    unsafe fn setPreferredWidthForSearchField_(&self, preferredWidthForSearchField: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredWidthForSearchField : preferredWidthForSearchField)
    }
}
pub trait PNSTextLocation: Sized + std::ops::Deref {
    unsafe fn compare_(&self, location: *mut u64) -> NSComparisonResult
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, compare : location)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextRange(pub id);
impl std::ops::Deref for NSTextRange {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextRange {}
impl NSTextRange {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextRange").unwrap(), alloc) })
    }
}
impl INSObject for NSTextRange {}
impl PNSObject for NSTextRange {}
impl std::convert::TryFrom<NSObject> for NSTextRange {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextRange, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextRange").unwrap()) };
        if is_kind_of {
            Ok(NSTextRange(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextRange")
        }
    }
}
impl INSTextRange for NSTextRange {}
pub trait INSTextRange: Sized + std::ops::Deref {
    unsafe fn initWithLocation_endLocation_(
        &self,
        location: *mut u64,
        endLocation: *mut u64,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLocation : location, endLocation : endLocation)
    }
    unsafe fn initWithLocation_(&self, location: *mut u64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLocation : location)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn isEqualToTextRange_(&self, textRange: NSTextRange) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, isEqualToTextRange : textRange)
    }
    unsafe fn containsLocation_(&self, location: *mut u64) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, containsLocation : location)
    }
    unsafe fn containsRange_(&self, textRange: NSTextRange) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, containsRange : textRange)
    }
    unsafe fn intersectsWithTextRange_(&self, textRange: NSTextRange) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, intersectsWithTextRange : textRange)
    }
    unsafe fn textRangeByIntersectingWithTextRange_(&self, textRange: NSTextRange) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textRangeByIntersectingWithTextRange : textRange)
    }
    unsafe fn textRangeByFormingUnionWithTextRange_(&self, textRange: NSTextRange) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textRangeByFormingUnionWithTextRange : textRange)
    }
    unsafe fn isEmpty(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isEmpty)
    }
    unsafe fn location(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, location)
    }
    unsafe fn endLocation(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, endLocation)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextRange").unwrap(), new)
    }
}
pub type NSTextSelectionGranularity = NSInteger;
pub type NSTextSelectionAffinity = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextSelection(pub id);
impl std::ops::Deref for NSTextSelection {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextSelection {}
impl NSTextSelection {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextSelection").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextSelection {}
impl INSObject for NSTextSelection {}
impl PNSObject for NSTextSelection {}
impl std::convert::TryFrom<NSObject> for NSTextSelection {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextSelection, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextSelection").unwrap()) };
        if is_kind_of {
            Ok(NSTextSelection(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextSelection")
        }
    }
}
impl INSTextSelection for NSTextSelection {}
pub trait INSTextSelection: Sized + std::ops::Deref {
    unsafe fn initWithRanges_affinity_granularity_(
        &self,
        textRanges: NSArray,
        affinity: NSTextSelectionAffinity,
        granularity: NSTextSelectionGranularity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRanges : textRanges, affinity : affinity, granularity : granularity)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn initWithRange_affinity_granularity_(
        &self,
        range: NSTextRange,
        affinity: NSTextSelectionAffinity,
        granularity: NSTextSelectionGranularity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithRange : range, affinity : affinity, granularity : granularity)
    }
    unsafe fn initWithLocation_affinity_(
        &self,
        location: *mut u64,
        affinity: NSTextSelectionAffinity,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithLocation : location, affinity : affinity)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn textSelectionWithTextRanges_(&self, textRanges: NSArray) -> NSTextSelection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textSelectionWithTextRanges : textRanges)
    }
    unsafe fn textRanges(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textRanges)
    }
    unsafe fn granularity(&self) -> NSTextSelectionGranularity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, granularity)
    }
    unsafe fn affinity(&self) -> NSTextSelectionAffinity
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, affinity)
    }
    unsafe fn isTransient(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isTransient)
    }
    unsafe fn anchorPositionOffset(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, anchorPositionOffset)
    }
    unsafe fn setAnchorPositionOffset_(&self, anchorPositionOffset: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAnchorPositionOffset : anchorPositionOffset)
    }
    unsafe fn isLogical(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isLogical)
    }
    unsafe fn setLogical_(&self, logical: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLogical : logical)
    }
    unsafe fn secondarySelectionLocation(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, secondarySelectionLocation)
    }
    unsafe fn setSecondarySelectionLocation_(&self, secondarySelectionLocation: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSecondarySelectionLocation : secondarySelectionLocation)
    }
    unsafe fn typingAttributes(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, typingAttributes)
    }
    unsafe fn setTypingAttributes_(&self, typingAttributes: NSDictionary)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTypingAttributes : typingAttributes)
    }
}
pub type NSTextSelectionNavigationDirection = NSInteger;
pub type NSTextSelectionNavigationDestination = NSInteger;
pub type NSTextSelectionNavigationModifier = NSUInteger;
pub type NSTextSelectionNavigationWritingDirection = NSInteger;
pub type NSTextSelectionNavigationLayoutOrientation = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextSelectionNavigation(pub id);
impl std::ops::Deref for NSTextSelectionNavigation {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextSelectionNavigation {}
impl NSTextSelectionNavigation {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextSelectionNavigation").unwrap(), alloc) })
    }
}
impl INSObject for NSTextSelectionNavigation {}
impl PNSObject for NSTextSelectionNavigation {}
impl std::convert::TryFrom<NSObject> for NSTextSelectionNavigation {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextSelectionNavigation, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextSelectionNavigation").unwrap()) };
        if is_kind_of {
            Ok(NSTextSelectionNavigation(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextSelectionNavigation")
        }
    }
}
impl INSTextSelectionNavigation for NSTextSelectionNavigation {}
pub trait INSTextSelectionNavigation: Sized + std::ops::Deref {
    unsafe fn initWithDataSource_(&self, dataSource: *mut u64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDataSource : dataSource)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn flushLayoutCache(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, flushLayoutCache)
    }
    unsafe fn destinationSelectionForTextSelection_direction_destination_extending_confined_(
        &self,
        textSelection: NSTextSelection,
        direction: NSTextSelectionNavigationDirection,
        destination: NSTextSelectionNavigationDestination,
        extending: BOOL,
        confined: BOOL,
    ) -> NSTextSelection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, destinationSelectionForTextSelection : textSelection, direction : direction, destination : destination, extending : extending, confined : confined)
    }
    unsafe fn textSelectionsInteractingAtPoint_inContainerAtLocation_anchors_modifiers_selecting_bounds_(
        &self,
        point: CGPoint,
        containerLocation: *mut u64,
        anchors: NSArray,
        modifiers: NSTextSelectionNavigationModifier,
        selecting: BOOL,
        bounds: CGRect,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textSelectionsInteractingAtPoint : point, inContainerAtLocation : containerLocation, anchors : anchors, modifiers : modifiers, selecting : selecting, bounds : bounds)
    }
    unsafe fn textSelectionForSelectionGranularity_enclosingTextSelection_(
        &self,
        selectionGranularity: NSTextSelectionGranularity,
        textSelection: NSTextSelection,
    ) -> NSTextSelection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textSelectionForSelectionGranularity : selectionGranularity, enclosingTextSelection : textSelection)
    }
    unsafe fn textSelectionForSelectionGranularity_enclosingPoint_inContainerAtLocation_(
        &self,
        selectionGranularity: NSTextSelectionGranularity,
        point: CGPoint,
        location: *mut u64,
    ) -> NSTextSelection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textSelectionForSelectionGranularity : selectionGranularity, enclosingPoint : point, inContainerAtLocation : location)
    }
    unsafe fn resolvedInsertionLocationForTextSelection_writingDirection_(
        &self,
        textSelection: NSTextSelection,
        writingDirection: NSTextSelectionNavigationWritingDirection,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, resolvedInsertionLocationForTextSelection : textSelection, writingDirection : writingDirection)
    }
    unsafe fn deletionRangesForTextSelection_direction_destination_allowsDecomposition_(
        &self,
        textSelection: NSTextSelection,
        direction: NSTextSelectionNavigationDirection,
        destination: NSTextSelectionNavigationDestination,
        allowsDecomposition: BOOL,
    ) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, deletionRangesForTextSelection : textSelection, direction : direction, destination : destination, allowsDecomposition : allowsDecomposition)
    }
    unsafe fn textSelectionDataSource(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textSelectionDataSource)
    }
    unsafe fn allowsNonContiguousRanges(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, allowsNonContiguousRanges)
    }
    unsafe fn setAllowsNonContiguousRanges_(&self, allowsNonContiguousRanges: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAllowsNonContiguousRanges : allowsNonContiguousRanges)
    }
    unsafe fn rotatesCoordinateSystemForLayoutOrientation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rotatesCoordinateSystemForLayoutOrientation)
    }
    unsafe fn setRotatesCoordinateSystemForLayoutOrientation_(
        &self,
        rotatesCoordinateSystemForLayoutOrientation: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRotatesCoordinateSystemForLayoutOrientation : rotatesCoordinateSystemForLayoutOrientation)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextSelectionNavigation").unwrap(), new)
    }
}
pub trait PNSTextSelectionDataSource: Sized + std::ops::Deref {
    unsafe fn enumerateSubstringsFromLocation_options_usingBlock_(
        &self,
        location: *mut u64,
        options: NSStringEnumerationOptions,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateSubstringsFromLocation : location, options : options, usingBlock : block)
    }
    unsafe fn textRangeForSelectionGranularity_enclosingLocation_(
        &self,
        selectionGranularity: NSTextSelectionGranularity,
        location: *mut u64,
    ) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textRangeForSelectionGranularity : selectionGranularity, enclosingLocation : location)
    }
    unsafe fn locationFromLocation_withOffset_(
        &self,
        location: *mut u64,
        offset: NSInteger,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, locationFromLocation : location, withOffset : offset)
    }
    unsafe fn offsetFromLocation_toLocation_(&self, from: *mut u64, to: *mut u64) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, offsetFromLocation : from, toLocation : to)
    }
    unsafe fn baseWritingDirectionAtLocation_(
        &self,
        location: *mut u64,
    ) -> NSTextSelectionNavigationWritingDirection
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, baseWritingDirectionAtLocation : location)
    }
    unsafe fn enumerateCaretOffsetsInLineFragmentAtLocation_usingBlock_(
        &self,
        location: *mut u64,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateCaretOffsetsInLineFragmentAtLocation : location, usingBlock : block)
    }
    unsafe fn lineFragmentRangeForPoint_inContainerAtLocation_(
        &self,
        point: CGPoint,
        location: *mut u64,
    ) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, lineFragmentRangeForPoint : point, inContainerAtLocation : location)
    }
    unsafe fn enumerateContainerBoundariesFromLocation_reverse_usingBlock_(
        &self,
        location: *mut u64,
        reverse: BOOL,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateContainerBoundariesFromLocation : location, reverse : reverse, usingBlock : block)
    }
    unsafe fn textLayoutOrientationAtLocation_(
        &self,
        location: *mut u64,
    ) -> NSTextSelectionNavigationLayoutOrientation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLayoutOrientationAtLocation : location)
    }
    unsafe fn documentRange(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentRange)
    }
}
pub type NSTextContentManagerEnumerationOptions = NSUInteger;
pub trait PNSTextElementProvider: Sized + std::ops::Deref {
    unsafe fn enumerateTextElementsFromLocation_options_usingBlock_(
        &self,
        textLocation: *mut u64,
        options: NSTextContentManagerEnumerationOptions,
        block: *mut ::std::os::raw::c_void,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateTextElementsFromLocation : textLocation, options : options, usingBlock : block)
    }
    unsafe fn replaceContentsInRange_withTextElements_(
        &self,
        range: NSTextRange,
        textElements: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceContentsInRange : range, withTextElements : textElements)
    }
    unsafe fn synchronizeToBackingStore_(&self, completionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, synchronizeToBackingStore : completionHandler)
    }
    unsafe fn locationFromLocation_withOffset_(
        &self,
        location: *mut u64,
        offset: NSInteger,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, locationFromLocation : location, withOffset : offset)
    }
    unsafe fn offsetFromLocation_toLocation_(&self, from: *mut u64, to: *mut u64) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, offsetFromLocation : from, toLocation : to)
    }
    unsafe fn adjustedRangeFromRange_forEditingTextSelection_(
        &self,
        textRange: NSTextRange,
        forEditingTextSelection: BOOL,
    ) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, adjustedRangeFromRange : textRange, forEditingTextSelection : forEditingTextSelection)
    }
    unsafe fn documentRange(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, documentRange)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextContentManager(pub id);
impl std::ops::Deref for NSTextContentManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextContentManager {}
impl NSTextContentManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextContentManager").unwrap(), alloc) })
    }
}
impl PNSTextElementProvider for NSTextContentManager {}
impl PNSSecureCoding for NSTextContentManager {}
impl INSObject for NSTextContentManager {}
impl PNSObject for NSTextContentManager {}
impl std::convert::TryFrom<NSObject> for NSTextContentManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextContentManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextContentManager").unwrap()) };
        if is_kind_of {
            Ok(NSTextContentManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextContentManager")
        }
    }
}
impl INSTextContentManager for NSTextContentManager {}
pub trait INSTextContentManager: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn addTextLayoutManager_(&self, textLayoutManager: NSTextLayoutManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addTextLayoutManager : textLayoutManager)
    }
    unsafe fn removeTextLayoutManager_(&self, textLayoutManager: NSTextLayoutManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeTextLayoutManager : textLayoutManager)
    }
    unsafe fn synchronizeTextLayoutManagers_(&self, completionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, synchronizeTextLayoutManagers : completionHandler)
    }
    unsafe fn textElementsForRange_(&self, range: NSTextRange) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textElementsForRange : range)
    }
    unsafe fn performEditingTransactionUsingBlock_(&self, transaction: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, performEditingTransactionUsingBlock : transaction)
    }
    unsafe fn recordEditActionInRange_newTextRange_(
        &self,
        originalTextRange: NSTextRange,
        newTextRange: NSTextRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, recordEditActionInRange : originalTextRange, newTextRange : newTextRange)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn textLayoutManagers(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLayoutManagers)
    }
    unsafe fn primaryTextLayoutManager(&self) -> NSTextLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, primaryTextLayoutManager)
    }
    unsafe fn setPrimaryTextLayoutManager_(&self, primaryTextLayoutManager: NSTextLayoutManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPrimaryTextLayoutManager : primaryTextLayoutManager)
    }
    unsafe fn hasEditingTransaction(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, hasEditingTransaction)
    }
    unsafe fn automaticallySynchronizesTextLayoutManagers(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallySynchronizesTextLayoutManagers)
    }
    unsafe fn setAutomaticallySynchronizesTextLayoutManagers_(
        &self,
        automaticallySynchronizesTextLayoutManagers: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallySynchronizesTextLayoutManagers : automaticallySynchronizesTextLayoutManagers)
    }
    unsafe fn automaticallySynchronizesToBackingStore(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, automaticallySynchronizesToBackingStore)
    }
    unsafe fn setAutomaticallySynchronizesToBackingStore_(
        &self,
        automaticallySynchronizesToBackingStore: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAutomaticallySynchronizesToBackingStore : automaticallySynchronizesToBackingStore)
    }
}
pub trait PNSTextContentManagerDelegate: Sized + std::ops::Deref {
    unsafe fn textContentManager_textElementAtLocation_(
        &self,
        textContentManager: NSTextContentManager,
        location: *mut u64,
    ) -> NSTextElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textContentManager : textContentManager, textElementAtLocation : location)
    }
    unsafe fn textContentManager_shouldEnumerateTextElement_options_(
        &self,
        textContentManager: NSTextContentManager,
        textElement: NSTextElement,
        options: NSTextContentManagerEnumerationOptions,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textContentManager : textContentManager, shouldEnumerateTextElement : textElement, options : options)
    }
}
pub trait PNSTextContentStorageDelegate: Sized + std::ops::Deref {
    unsafe fn textContentStorage_textParagraphWithRange_(
        &self,
        textContentStorage: NSTextContentStorage,
        range: NSRange,
    ) -> NSTextParagraph
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textContentStorage : textContentStorage, textParagraphWithRange : range)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextContentStorage(pub id);
impl std::ops::Deref for NSTextContentStorage {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextContentStorage {}
impl NSTextContentStorage {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextContentStorage").unwrap(), alloc) })
    }
}
impl PNSTextStorageObserving for NSTextContentStorage {}
impl INSTextContentManager for NSTextContentStorage {}
impl PNSTextElementProvider for NSTextContentStorage {}
impl PNSSecureCoding for NSTextContentStorage {}
impl From<NSTextContentStorage> for NSTextContentManager {
    fn from(child: NSTextContentStorage) -> NSTextContentManager {
        NSTextContentManager(child.0)
    }
}
impl std::convert::TryFrom<NSTextContentManager> for NSTextContentStorage {
    type Error = &'static str;
    fn try_from(parent: NSTextContentManager) -> Result<NSTextContentStorage, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextContentStorage").unwrap()) };
        if is_kind_of {
            Ok(NSTextContentStorage(parent.0))
        } else {
            Err("This NSTextContentManager cannot be downcasted to NSTextContentStorage")
        }
    }
}
impl INSObject for NSTextContentStorage {}
impl PNSObject for NSTextContentStorage {}
impl INSTextContentStorage for NSTextContentStorage {}
pub trait INSTextContentStorage: Sized + std::ops::Deref {
    unsafe fn attributedStringForTextElement_(
        &self,
        textElement: NSTextElement,
    ) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, attributedStringForTextElement : textElement)
    }
    unsafe fn textElementForAttributedString_(
        &self,
        attributedString: NSAttributedString,
    ) -> NSTextElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textElementForAttributedString : attributedString)
    }
    unsafe fn locationFromLocation_withOffset_(
        &self,
        location: *mut u64,
        offset: NSInteger,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, locationFromLocation : location, withOffset : offset)
    }
    unsafe fn offsetFromLocation_toLocation_(&self, from: *mut u64, to: *mut u64) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, offsetFromLocation : from, toLocation : to)
    }
    unsafe fn adjustedRangeFromRange_forEditingTextSelection_(
        &self,
        textRange: NSTextRange,
        forEditingTextSelection: BOOL,
    ) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, adjustedRangeFromRange : textRange, forEditingTextSelection : forEditingTextSelection)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn includesTextListMarkers(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, includesTextListMarkers)
    }
    unsafe fn setIncludesTextListMarkers_(&self, includesTextListMarkers: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncludesTextListMarkers : includesTextListMarkers)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn setAttributedString_(&self, attributedString: NSAttributedString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setAttributedString : attributedString)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextElement(pub id);
impl std::ops::Deref for NSTextElement {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextElement {}
impl NSTextElement {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextElement").unwrap(), alloc) })
    }
}
impl INSObject for NSTextElement {}
impl PNSObject for NSTextElement {}
impl std::convert::TryFrom<NSObject> for NSTextElement {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextElement, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextElement").unwrap()) };
        if is_kind_of {
            Ok(NSTextElement(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextElement")
        }
    }
}
impl INSTextElement for NSTextElement {}
pub trait INSTextElement: Sized + std::ops::Deref {
    unsafe fn initWithTextContentManager_(
        &self,
        textContentManager: NSTextContentManager,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTextContentManager : textContentManager)
    }
    unsafe fn textContentManager(&self) -> NSTextContentManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContentManager)
    }
    unsafe fn setTextContentManager_(&self, textContentManager: NSTextContentManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextContentManager : textContentManager)
    }
    unsafe fn elementRange(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, elementRange)
    }
    unsafe fn setElementRange_(&self, elementRange: NSTextRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setElementRange : elementRange)
    }
    unsafe fn childElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, childElements)
    }
    unsafe fn parentElement(&self) -> NSTextElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parentElement)
    }
    unsafe fn isRepresentedElement(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, isRepresentedElement)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextParagraph(pub id);
impl std::ops::Deref for NSTextParagraph {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextParagraph {}
impl NSTextParagraph {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextParagraph").unwrap(), alloc) })
    }
}
impl INSTextElement for NSTextParagraph {}
impl From<NSTextParagraph> for NSTextElement {
    fn from(child: NSTextParagraph) -> NSTextElement {
        NSTextElement(child.0)
    }
}
impl std::convert::TryFrom<NSTextElement> for NSTextParagraph {
    type Error = &'static str;
    fn try_from(parent: NSTextElement) -> Result<NSTextParagraph, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextParagraph").unwrap()) };
        if is_kind_of {
            Ok(NSTextParagraph(parent.0))
        } else {
            Err("This NSTextElement cannot be downcasted to NSTextParagraph")
        }
    }
}
impl INSObject for NSTextParagraph {}
impl PNSObject for NSTextParagraph {}
impl INSTextParagraph for NSTextParagraph {}
pub trait INSTextParagraph: Sized + std::ops::Deref {
    unsafe fn initWithAttributedString_(&self, attributedString: NSAttributedString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAttributedString : attributedString)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn paragraphContentRange(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphContentRange)
    }
    unsafe fn paragraphSeparatorRange(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, paragraphSeparatorRange)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextListElement(pub id);
impl std::ops::Deref for NSTextListElement {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextListElement {}
impl NSTextListElement {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextListElement").unwrap(), alloc) })
    }
}
impl INSTextParagraph for NSTextListElement {}
impl From<NSTextListElement> for NSTextParagraph {
    fn from(child: NSTextListElement) -> NSTextParagraph {
        NSTextParagraph(child.0)
    }
}
impl std::convert::TryFrom<NSTextParagraph> for NSTextListElement {
    type Error = &'static str;
    fn try_from(parent: NSTextParagraph) -> Result<NSTextListElement, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextListElement").unwrap()) };
        if is_kind_of {
            Ok(NSTextListElement(parent.0))
        } else {
            Err("This NSTextParagraph cannot be downcasted to NSTextListElement")
        }
    }
}
impl INSTextElement for NSTextListElement {}
impl INSObject for NSTextListElement {}
impl PNSObject for NSTextListElement {}
impl INSTextListElement for NSTextListElement {}
pub trait INSTextListElement: Sized + std::ops::Deref {
    unsafe fn initWithParentElement_textList_contents_markerAttributes_childElements_(
        &self,
        parent: NSTextListElement,
        textList: NSTextList,
        contents: NSAttributedString,
        markerAttributes: NSDictionary,
        children: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithParentElement : parent, textList : textList, contents : contents, markerAttributes : markerAttributes, childElements : children)
    }
    unsafe fn initWithAttributedString_(&self, attributedString: NSAttributedString) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAttributedString : attributedString)
    }
    unsafe fn textList(&self) -> NSTextList
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textList)
    }
    unsafe fn contents(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contents)
    }
    unsafe fn markerAttributes(&self) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, markerAttributes)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn childElements(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, childElements)
    }
    unsafe fn parentElement(&self) -> NSTextListElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, parentElement)
    }
    unsafe fn textListElementWithContents_markerAttributes_textList_childElements_(
        contents: NSAttributedString,
        markerAttributes: NSDictionary,
        textList: NSTextList,
        children: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextListElement").unwrap(), textListElementWithContents : contents, markerAttributes : markerAttributes, textList : textList, childElements : children)
    }
    unsafe fn textListElementWithChildElements_textList_nestingLevel_(
        children: NSArray,
        textList: NSTextList,
        nestingLevel: NSInteger,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextListElement").unwrap(), textListElementWithChildElements : children, textList : textList, nestingLevel : nestingLevel)
    }
}
pub type NSTextLayoutFragmentEnumerationOptions = NSUInteger;
pub type NSTextLayoutFragmentState = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextLayoutFragment(pub id);
impl std::ops::Deref for NSTextLayoutFragment {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextLayoutFragment {}
impl NSTextLayoutFragment {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextLayoutFragment").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextLayoutFragment {}
impl INSObject for NSTextLayoutFragment {}
impl PNSObject for NSTextLayoutFragment {}
impl std::convert::TryFrom<NSObject> for NSTextLayoutFragment {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextLayoutFragment, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextLayoutFragment").unwrap()) };
        if is_kind_of {
            Ok(NSTextLayoutFragment(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextLayoutFragment")
        }
    }
}
impl INSTextLayoutFragment for NSTextLayoutFragment {}
pub trait INSTextLayoutFragment: Sized + std::ops::Deref {
    unsafe fn initWithTextElement_range_(
        &self,
        textElement: NSTextElement,
        rangeInElement: NSTextRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTextElement : textElement, range : rangeInElement)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn textLineFragmentForVerticalOffset_requiresExactMatch_(
        &self,
        verticalOffset: CGFloat,
        requiresExactMatch: BOOL,
    ) -> NSTextLineFragment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLineFragmentForVerticalOffset : verticalOffset, requiresExactMatch : requiresExactMatch)
    }
    unsafe fn textLineFragmentForTextLocation_isUpstreamAffinity_(
        &self,
        textLocation: *mut u64,
        isUpstreamAffinity: BOOL,
    ) -> NSTextLineFragment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLineFragmentForTextLocation : textLocation, isUpstreamAffinity : isUpstreamAffinity)
    }
    unsafe fn invalidateLayout(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, invalidateLayout)
    }
    unsafe fn drawAtPoint_inContext_(&self, point: CGPoint, context: CGContextRef)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawAtPoint : point, inContext : context)
    }
    unsafe fn frameForTextAttachmentAtLocation_(&self, location: *mut u64) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, frameForTextAttachmentAtLocation : location)
    }
    unsafe fn textLayoutManager(&self) -> NSTextLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLayoutManager)
    }
    unsafe fn textElement(&self) -> NSTextElement
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textElement)
    }
    unsafe fn rangeInElement(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, rangeInElement)
    }
    unsafe fn textLineFragments(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLineFragments)
    }
    unsafe fn layoutQueue(&self) -> NSOperationQueue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutQueue)
    }
    unsafe fn setLayoutQueue_(&self, layoutQueue: NSOperationQueue)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayoutQueue : layoutQueue)
    }
    unsafe fn state(&self) -> NSTextLayoutFragmentState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn layoutFragmentFrame(&self) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutFragmentFrame)
    }
    unsafe fn renderingSurfaceBounds(&self) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, renderingSurfaceBounds)
    }
    unsafe fn leadingPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, leadingPadding)
    }
    unsafe fn trailingPadding(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, trailingPadding)
    }
    unsafe fn topMargin(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, topMargin)
    }
    unsafe fn bottomMargin(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, bottomMargin)
    }
    unsafe fn textAttachmentViewProviders(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textAttachmentViewProviders)
    }
}
pub type NSTextLayoutManagerSegmentType = NSInteger;
pub type NSTextLayoutManagerSegmentOptions = NSUInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextLayoutManager(pub id);
impl std::ops::Deref for NSTextLayoutManager {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextLayoutManager {}
impl NSTextLayoutManager {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextLayoutManager").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextLayoutManager {}
impl PNSTextSelectionDataSource for NSTextLayoutManager {}
impl INSObject for NSTextLayoutManager {}
impl PNSObject for NSTextLayoutManager {}
impl std::convert::TryFrom<NSObject> for NSTextLayoutManager {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextLayoutManager, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextLayoutManager").unwrap()) };
        if is_kind_of {
            Ok(NSTextLayoutManager(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextLayoutManager")
        }
    }
}
impl INSTextLayoutManager for NSTextLayoutManager {}
pub trait INSTextLayoutManager: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn replaceTextContentManager_(&self, textContentManager: NSTextContentManager)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceTextContentManager : textContentManager)
    }
    unsafe fn ensureLayoutForRange_(&self, range: NSTextRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ensureLayoutForRange : range)
    }
    unsafe fn ensureLayoutForBounds_(&self, bounds: CGRect)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, ensureLayoutForBounds : bounds)
    }
    unsafe fn invalidateLayoutForRange_(&self, range: NSTextRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateLayoutForRange : range)
    }
    unsafe fn textLayoutFragmentForPosition_(&self, position: CGPoint) -> NSTextLayoutFragment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLayoutFragmentForPosition : position)
    }
    unsafe fn textLayoutFragmentForLocation_(&self, location: *mut u64) -> NSTextLayoutFragment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLayoutFragmentForLocation : location)
    }
    unsafe fn enumerateTextLayoutFragmentsFromLocation_options_usingBlock_(
        &self,
        location: *mut u64,
        options: NSTextLayoutFragmentEnumerationOptions,
        block: *mut ::std::os::raw::c_void,
    ) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateTextLayoutFragmentsFromLocation : location, options : options, usingBlock : block)
    }
    unsafe fn enumerateRenderingAttributesFromLocation_reverse_usingBlock_(
        &self,
        location: *mut u64,
        reverse: BOOL,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateRenderingAttributesFromLocation : location, reverse : reverse, usingBlock : block)
    }
    unsafe fn setRenderingAttributes_forTextRange_(
        &self,
        renderingAttributes: NSDictionary,
        textRange: NSTextRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRenderingAttributes : renderingAttributes, forTextRange : textRange)
    }
    unsafe fn addRenderingAttribute_value_forTextRange_(
        &self,
        renderingAttribute: NSString,
        value: id,
        textRange: NSTextRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, addRenderingAttribute : renderingAttribute, value : value, forTextRange : textRange)
    }
    unsafe fn removeRenderingAttribute_forTextRange_(
        &self,
        renderingAttribute: NSString,
        textRange: NSTextRange,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, removeRenderingAttribute : renderingAttribute, forTextRange : textRange)
    }
    unsafe fn invalidateRenderingAttributesForTextRange_(&self, textRange: NSTextRange)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, invalidateRenderingAttributesForTextRange : textRange)
    }
    unsafe fn renderingAttributesForLink_atLocation_(
        &self,
        link: id,
        location: *mut u64,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, renderingAttributesForLink : link, atLocation : location)
    }
    unsafe fn enumerateTextSegmentsInRange_type_options_usingBlock_(
        &self,
        textRange: NSTextRange,
        type_: NSTextLayoutManagerSegmentType,
        options: NSTextLayoutManagerSegmentOptions,
        block: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, enumerateTextSegmentsInRange : textRange, r#type : type_, options : options, usingBlock : block)
    }
    unsafe fn replaceContentsInRange_withTextElements_(
        &self,
        range: NSTextRange,
        textElements: NSArray,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceContentsInRange : range, withTextElements : textElements)
    }
    unsafe fn replaceContentsInRange_withAttributedString_(
        &self,
        range: NSTextRange,
        attributedString: NSAttributedString,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceContentsInRange : range, withAttributedString : attributedString)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn usesFontLeading(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesFontLeading)
    }
    unsafe fn setUsesFontLeading_(&self, usesFontLeading: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesFontLeading : usesFontLeading)
    }
    unsafe fn limitsLayoutForSuspiciousContents(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, limitsLayoutForSuspiciousContents)
    }
    unsafe fn setLimitsLayoutForSuspiciousContents_(&self, limitsLayoutForSuspiciousContents: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLimitsLayoutForSuspiciousContents : limitsLayoutForSuspiciousContents)
    }
    unsafe fn usesHyphenation(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usesHyphenation)
    }
    unsafe fn setUsesHyphenation_(&self, usesHyphenation: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setUsesHyphenation : usesHyphenation)
    }
    unsafe fn resolvesNaturalAlignmentWithBaseWritingDirection(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resolvesNaturalAlignmentWithBaseWritingDirection)
    }
    unsafe fn setResolvesNaturalAlignmentWithBaseWritingDirection_(
        &self,
        resolvesNaturalAlignmentWithBaseWritingDirection: BOOL,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setResolvesNaturalAlignmentWithBaseWritingDirection : resolvesNaturalAlignmentWithBaseWritingDirection)
    }
    unsafe fn textContentManager(&self) -> NSTextContentManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContentManager)
    }
    unsafe fn textContainer(&self) -> NSTextContainer
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textContainer)
    }
    unsafe fn setTextContainer_(&self, textContainer: NSTextContainer)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextContainer : textContainer)
    }
    unsafe fn usageBoundsForTextContainer(&self) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, usageBoundsForTextContainer)
    }
    unsafe fn textViewportLayoutController(&self) -> NSTextViewportLayoutController
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textViewportLayoutController)
    }
    unsafe fn layoutQueue(&self) -> NSOperationQueue
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutQueue)
    }
    unsafe fn setLayoutQueue_(&self, layoutQueue: NSOperationQueue)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLayoutQueue : layoutQueue)
    }
    unsafe fn textSelections(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textSelections)
    }
    unsafe fn setTextSelections_(&self, textSelections: NSArray)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextSelections : textSelections)
    }
    unsafe fn textSelectionNavigation(&self) -> NSTextSelectionNavigation
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textSelectionNavigation)
    }
    unsafe fn setTextSelectionNavigation_(&self, textSelectionNavigation: NSTextSelectionNavigation)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setTextSelectionNavigation : textSelectionNavigation)
    }
    unsafe fn renderingAttributesValidator(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, renderingAttributesValidator)
    }
    unsafe fn setRenderingAttributesValidator_(
        &self,
        renderingAttributesValidator: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setRenderingAttributesValidator : renderingAttributesValidator)
    }
    unsafe fn linkRenderingAttributes() -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextLayoutManager").unwrap(), linkRenderingAttributes)
    }
}
pub trait PNSTextLayoutManagerDelegate: Sized + std::ops::Deref {
    unsafe fn textLayoutManager_textLayoutFragmentForLocation_inTextElement_(
        &self,
        textLayoutManager: NSTextLayoutManager,
        location: *mut u64,
        textElement: NSTextElement,
    ) -> NSTextLayoutFragment
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLayoutManager : textLayoutManager, textLayoutFragmentForLocation : location, inTextElement : textElement)
    }
    unsafe fn textLayoutManager_shouldBreakLineBeforeLocation_hyphenating_(
        &self,
        textLayoutManager: NSTextLayoutManager,
        location: *mut u64,
        hyphenating: BOOL,
    ) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLayoutManager : textLayoutManager, shouldBreakLineBeforeLocation : location, hyphenating : hyphenating)
    }
    unsafe fn textLayoutManager_renderingAttributesForLink_atLocation_defaultAttributes_(
        &self,
        textLayoutManager: NSTextLayoutManager,
        link: id,
        location: *mut u64,
        renderingAttributes: NSDictionary,
    ) -> NSDictionary
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textLayoutManager : textLayoutManager, renderingAttributesForLink : link, atLocation : location, defaultAttributes : renderingAttributes)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextLineFragment(pub id);
impl std::ops::Deref for NSTextLineFragment {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextLineFragment {}
impl NSTextLineFragment {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextLineFragment").unwrap(), alloc) })
    }
}
impl PNSSecureCoding for NSTextLineFragment {}
impl INSObject for NSTextLineFragment {}
impl PNSObject for NSTextLineFragment {}
impl std::convert::TryFrom<NSObject> for NSTextLineFragment {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextLineFragment, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextLineFragment").unwrap()) };
        if is_kind_of {
            Ok(NSTextLineFragment(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextLineFragment")
        }
    }
}
impl INSTextLineFragment for NSTextLineFragment {}
pub trait INSTextLineFragment: Sized + std::ops::Deref {
    unsafe fn initWithAttributedString_range_(
        &self,
        attributedString: NSAttributedString,
        range: NSRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAttributedString : attributedString, range : range)
    }
    unsafe fn initWithCoder_(&self, aDecoder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : aDecoder)
    }
    unsafe fn initWithString_attributes_range_(
        &self,
        string: NSString,
        attributes: NSDictionary,
        range: NSRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithString : string, attributes : attributes, range : range)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn drawAtPoint_inContext_(&self, point: CGPoint, context: CGContextRef)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, drawAtPoint : point, inContext : context)
    }
    unsafe fn locationForCharacterAtIndex_(&self, index: NSInteger) -> CGPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, locationForCharacterAtIndex : index)
    }
    unsafe fn characterIndexForPoint_(&self, point: CGPoint) -> NSInteger
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, characterIndexForPoint : point)
    }
    unsafe fn fractionOfDistanceThroughGlyphForPoint_(&self, point: CGPoint) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, fractionOfDistanceThroughGlyphForPoint : point)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn characterRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, characterRange)
    }
    unsafe fn typographicBounds(&self) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, typographicBounds)
    }
    unsafe fn glyphOrigin(&self) -> CGPoint
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, glyphOrigin)
    }
}
pub trait PNSTextViewportLayoutControllerDelegate: Sized + std::ops::Deref {
    unsafe fn viewportBoundsForTextViewportLayoutController_(
        &self,
        textViewportLayoutController: NSTextViewportLayoutController,
    ) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, viewportBoundsForTextViewportLayoutController : textViewportLayoutController)
    }
    unsafe fn textViewportLayoutController_configureRenderingSurfaceForTextLayoutFragment_(
        &self,
        textViewportLayoutController: NSTextViewportLayoutController,
        textLayoutFragment: NSTextLayoutFragment,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewportLayoutController : textViewportLayoutController, configureRenderingSurfaceForTextLayoutFragment : textLayoutFragment)
    }
    unsafe fn textViewportLayoutControllerWillLayout_(
        &self,
        textViewportLayoutController: NSTextViewportLayoutController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewportLayoutControllerWillLayout : textViewportLayoutController)
    }
    unsafe fn textViewportLayoutControllerDidLayout_(
        &self,
        textViewportLayoutController: NSTextViewportLayoutController,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, textViewportLayoutControllerDidLayout : textViewportLayoutController)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextViewportLayoutController(pub id);
impl std::ops::Deref for NSTextViewportLayoutController {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextViewportLayoutController {}
impl NSTextViewportLayoutController {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextViewportLayoutController").unwrap(), alloc) })
    }
}
impl INSObject for NSTextViewportLayoutController {}
impl PNSObject for NSTextViewportLayoutController {}
impl std::convert::TryFrom<NSObject> for NSTextViewportLayoutController {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextViewportLayoutController, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextViewportLayoutController").unwrap())
        };
        if is_kind_of {
            Ok(NSTextViewportLayoutController(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextViewportLayoutController")
        }
    }
}
impl INSTextViewportLayoutController for NSTextViewportLayoutController {}
pub trait INSTextViewportLayoutController: Sized + std::ops::Deref {
    unsafe fn initWithTextLayoutManager_(
        &self,
        textLayoutManager: NSTextLayoutManager,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithTextLayoutManager : textLayoutManager)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn layoutViewport(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, layoutViewport)
    }
    unsafe fn relocateViewportToTextLocation_(&self, textLocation: *mut u64) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, relocateViewportToTextLocation : textLocation)
    }
    unsafe fn adjustViewportByVerticalOffset_(&self, verticalOffset: CGFloat)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, adjustViewportByVerticalOffset : verticalOffset)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn setDelegate_(&self, delegate: *mut u64)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDelegate : delegate)
    }
    unsafe fn textLayoutManager(&self) -> NSTextLayoutManager
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, textLayoutManager)
    }
    unsafe fn viewportBounds(&self) -> CGRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewportBounds)
    }
    unsafe fn viewportRange(&self) -> NSTextRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, viewportRange)
    }
    unsafe fn new() -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextViewportLayoutController").unwrap(), new)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSAdaptiveImageGlyph(pub id);
impl std::ops::Deref for NSAdaptiveImageGlyph {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSAdaptiveImageGlyph {}
impl NSAdaptiveImageGlyph {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSAdaptiveImageGlyph").unwrap(), alloc) })
    }
}
impl PNSCopying for NSAdaptiveImageGlyph {}
impl PNSSecureCoding for NSAdaptiveImageGlyph {}
impl INSObject for NSAdaptiveImageGlyph {}
impl PNSObject for NSAdaptiveImageGlyph {}
impl std::convert::TryFrom<NSObject> for NSAdaptiveImageGlyph {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSAdaptiveImageGlyph, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSAdaptiveImageGlyph").unwrap()) };
        if is_kind_of {
            Ok(NSAdaptiveImageGlyph(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSAdaptiveImageGlyph")
        }
    }
}
impl INSAdaptiveImageGlyph for NSAdaptiveImageGlyph {}
pub trait INSAdaptiveImageGlyph: Sized + std::ops::Deref {
    unsafe fn initWithImageContent_(&self, imageContent: NSData) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithImageContent : imageContent)
    }
    unsafe fn initWithCoder_(&self, coder: NSCoder) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithCoder : coder)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn imageContent(&self) -> NSData
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, imageContent)
    }
    unsafe fn contentIdentifier(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentIdentifier)
    }
    unsafe fn contentDescription(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, contentDescription)
    }
    unsafe fn contentType() -> UTType
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSAdaptiveImageGlyph").unwrap(), contentType)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWritingToolsCoordinatorAnimationParameters(pub id);
impl std::ops::Deref for NSWritingToolsCoordinatorAnimationParameters {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWritingToolsCoordinatorAnimationParameters {}
impl NSWritingToolsCoordinatorAnimationParameters {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinatorAnimationParameters").unwrap(), alloc) })
    }
}
impl INSObject for NSWritingToolsCoordinatorAnimationParameters {}
impl PNSObject for NSWritingToolsCoordinatorAnimationParameters {}
impl std::convert::TryFrom<NSObject> for NSWritingToolsCoordinatorAnimationParameters {
    type Error = &'static str;
    fn try_from(
        parent: NSObject,
    ) -> Result<NSWritingToolsCoordinatorAnimationParameters, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinatorAnimationParameters").unwrap())
        };
        if is_kind_of {
            Ok(NSWritingToolsCoordinatorAnimationParameters(parent.0))
        } else {
            Err ("This NSObject cannot be downcasted to NSWritingToolsCoordinatorAnimationParameters" ,)
        }
    }
}
impl INSWritingToolsCoordinatorAnimationParameters
    for NSWritingToolsCoordinatorAnimationParameters
{
}
pub trait INSWritingToolsCoordinatorAnimationParameters: Sized + std::ops::Deref {
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn duration(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, duration)
    }
    unsafe fn delay(&self) -> CGFloat
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delay)
    }
    unsafe fn progressHandler(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, progressHandler)
    }
    unsafe fn setProgressHandler_(&self, progressHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setProgressHandler : progressHandler)
    }
    unsafe fn completionHandler(&self) -> *mut ::std::os::raw::c_void
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, completionHandler)
    }
    unsafe fn setCompletionHandler_(&self, completionHandler: *mut ::std::os::raw::c_void)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setCompletionHandler : completionHandler)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWritingToolsCoordinatorContext(pub id);
impl std::ops::Deref for NSWritingToolsCoordinatorContext {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWritingToolsCoordinatorContext {}
impl NSWritingToolsCoordinatorContext {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinatorContext").unwrap(), alloc) })
    }
}
impl INSObject for NSWritingToolsCoordinatorContext {}
impl PNSObject for NSWritingToolsCoordinatorContext {}
impl std::convert::TryFrom<NSObject> for NSWritingToolsCoordinatorContext {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWritingToolsCoordinatorContext, Self::Error> {
        let is_kind_of: bool = unsafe {
            msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinatorContext").unwrap())
        };
        if is_kind_of {
            Ok(NSWritingToolsCoordinatorContext(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWritingToolsCoordinatorContext")
        }
    }
}
impl INSWritingToolsCoordinatorContext for NSWritingToolsCoordinatorContext {}
pub trait INSWritingToolsCoordinatorContext: Sized + std::ops::Deref {
    unsafe fn initWithAttributedString_range_(
        &self,
        attributedString: NSAttributedString,
        range: NSRange,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithAttributedString : attributedString, range : range)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn attributedString(&self) -> NSAttributedString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, attributedString)
    }
    unsafe fn range(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, range)
    }
    unsafe fn identifier(&self) -> NSUUID
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, identifier)
    }
    unsafe fn resolvedRange(&self) -> NSRange
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resolvedRange)
    }
}
pub type NSWritingToolsCoordinatorTextUpdateReason = NSInteger;
pub type NSWritingToolsCoordinatorState = NSInteger;
pub type NSWritingToolsCoordinatorTextReplacementReason = NSInteger;
pub type NSWritingToolsCoordinatorContextScope = NSInteger;
pub type NSWritingToolsCoordinatorTextAnimation = NSInteger;
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSWritingToolsCoordinator(pub id);
impl std::ops::Deref for NSWritingToolsCoordinator {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSWritingToolsCoordinator {}
impl NSWritingToolsCoordinator {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinator").unwrap(), alloc) })
    }
}
impl INSObject for NSWritingToolsCoordinator {}
impl PNSObject for NSWritingToolsCoordinator {}
impl std::convert::TryFrom<NSObject> for NSWritingToolsCoordinator {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSWritingToolsCoordinator, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinator").unwrap()) };
        if is_kind_of {
            Ok(NSWritingToolsCoordinator(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSWritingToolsCoordinator")
        }
    }
}
impl INSWritingToolsCoordinator for NSWritingToolsCoordinator {}
pub trait INSWritingToolsCoordinator: Sized + std::ops::Deref {
    unsafe fn initWithDelegate_(&self, delegate: *mut u64) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithDelegate : delegate)
    }
    unsafe fn stopWritingTools(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, stopWritingTools)
    }
    unsafe fn updateRange_withText_reason_forContextWithIdentifier_(
        &self,
        range: NSRange,
        replacementText: NSAttributedString,
        reason: NSWritingToolsCoordinatorTextUpdateReason,
        contextID: NSUUID,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateRange : range, withText : replacementText, reason : reason, forContextWithIdentifier : contextID)
    }
    unsafe fn updateForReflowedTextInContextWithIdentifier_(&self, contextID: NSUUID)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, updateForReflowedTextInContextWithIdentifier : contextID)
    }
    unsafe fn delegate(&self) -> *mut u64
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, delegate)
    }
    unsafe fn view(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, view)
    }
    unsafe fn effectContainerView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, effectContainerView)
    }
    unsafe fn setEffectContainerView_(&self, effectContainerView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setEffectContainerView : effectContainerView)
    }
    unsafe fn decorationContainerView(&self) -> NSView
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, decorationContainerView)
    }
    unsafe fn setDecorationContainerView_(&self, decorationContainerView: NSView)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDecorationContainerView : decorationContainerView)
    }
    unsafe fn state(&self) -> NSWritingToolsCoordinatorState
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, state)
    }
    unsafe fn preferredBehavior(&self) -> NSWritingToolsBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredBehavior)
    }
    unsafe fn setPreferredBehavior_(&self, preferredBehavior: NSWritingToolsBehavior)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredBehavior : preferredBehavior)
    }
    unsafe fn behavior(&self) -> NSWritingToolsBehavior
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, behavior)
    }
    unsafe fn preferredResultOptions(&self) -> NSWritingToolsResultOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, preferredResultOptions)
    }
    unsafe fn setPreferredResultOptions_(&self, preferredResultOptions: NSWritingToolsResultOptions)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setPreferredResultOptions : preferredResultOptions)
    }
    unsafe fn resultOptions(&self) -> NSWritingToolsResultOptions
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, resultOptions)
    }
    unsafe fn includesTextListMarkers(&self) -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, includesTextListMarkers)
    }
    unsafe fn setIncludesTextListMarkers_(&self, includesTextListMarkers: BOOL)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setIncludesTextListMarkers : includesTextListMarkers)
    }
    unsafe fn isWritingToolsAvailable() -> BOOL
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&*objc2::runtime::AnyClass::get(c"NSWritingToolsCoordinator").unwrap(), isWritingToolsAvailable)
    }
}
pub trait PNSWritingToolsCoordinatorDelegate: Sized + std::ops::Deref {
    unsafe fn writingToolsCoordinator_requestsContextsForScope_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        scope: NSWritingToolsCoordinatorContextScope,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsContextsForScope : scope, completion : completion)
    }
    unsafe fn writingToolsCoordinator_replaceRange_inContext_proposedText_reason_animationParameters_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        replacementText: NSAttributedString,
        reason: NSWritingToolsCoordinatorTextReplacementReason,
        animationParameters: NSWritingToolsCoordinatorAnimationParameters,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, replaceRange : range, inContext : context, proposedText : replacementText, reason : reason, animationParameters : animationParameters, completion : completion)
    }
    unsafe fn writingToolsCoordinator_selectRanges_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        ranges: NSArray,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, selectRanges : ranges, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsBoundingBezierPathsForRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsBoundingBezierPathsForRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsUnderlinePathsForRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsUnderlinePathsForRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_prepareForTextAnimation_forRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        textAnimation: NSWritingToolsCoordinatorTextAnimation,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, prepareForTextAnimation : textAnimation, forRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsPreviewForTextAnimation_ofRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        textAnimation: NSWritingToolsCoordinatorTextAnimation,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsPreviewForTextAnimation : textAnimation, ofRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsPreviewForRect_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        rect: NSRect,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsPreviewForRect : rect, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_finishTextAnimation_forRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        textAnimation: NSWritingToolsCoordinatorTextAnimation,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, finishTextAnimation : textAnimation, forRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsSingleContainerSubrangesOfRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsSingleContainerSubrangesOfRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsDecorationContainerViewForRange_inContext_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        range: NSRange,
        context: NSWritingToolsCoordinatorContext,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsDecorationContainerViewForRange : range, inContext : context, completion : completion)
    }
    unsafe fn writingToolsCoordinator_willChangeToState_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        newState: NSWritingToolsCoordinatorState,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, willChangeToState : newState, completion : completion)
    }
    unsafe fn writingToolsCoordinator_requestsRangeInContextWithIdentifierForPoint_completion_(
        &self,
        writingToolsCoordinator: NSWritingToolsCoordinator,
        point: NSPoint,
        completion: *mut ::std::os::raw::c_void,
    ) where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, writingToolsCoordinator : writingToolsCoordinator, requestsRangeInContextWithIdentifierForPoint : point, completion : completion)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSTextPreview(pub id);
impl std::ops::Deref for NSTextPreview {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSTextPreview {}
impl NSTextPreview {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSTextPreview").unwrap(), alloc) })
    }
}
impl INSObject for NSTextPreview {}
impl PNSObject for NSTextPreview {}
impl std::convert::TryFrom<NSObject> for NSTextPreview {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSTextPreview, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSTextPreview").unwrap()) };
        if is_kind_of {
            Ok(NSTextPreview(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSTextPreview")
        }
    }
}
impl INSTextPreview for NSTextPreview {}
pub trait INSTextPreview: Sized + std::ops::Deref {
    unsafe fn initWithSnapshotImage_presentationFrame_candidateRects_(
        &self,
        snapshotImage: CGImageRef,
        presentationFrame: NSRect,
        candidateRects: NSArray,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSnapshotImage : snapshotImage, presentationFrame : presentationFrame, candidateRects : candidateRects)
    }
    unsafe fn initWithSnapshotImage_presentationFrame_(
        &self,
        snapshotImage: CGImageRef,
        presentationFrame: NSRect,
    ) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, initWithSnapshotImage : snapshotImage, presentationFrame : presentationFrame)
    }
    unsafe fn init(&self) -> instancetype
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, init)
    }
    unsafe fn previewImage(&self) -> CGImageRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, previewImage)
    }
    unsafe fn presentationFrame(&self) -> NSRect
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, presentationFrame)
    }
    unsafe fn candidateRects(&self) -> NSArray
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, candidateRects)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSNibConnector(pub id);
impl std::ops::Deref for NSNibConnector {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSNibConnector {}
impl NSNibConnector {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSNibConnector").unwrap(), alloc) })
    }
}
impl PNSCoding for NSNibConnector {}
impl INSObject for NSNibConnector {}
impl PNSObject for NSNibConnector {}
impl std::convert::TryFrom<NSObject> for NSNibConnector {
    type Error = &'static str;
    fn try_from(parent: NSObject) -> Result<NSNibConnector, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSNibConnector").unwrap()) };
        if is_kind_of {
            Ok(NSNibConnector(parent.0))
        } else {
            Err("This NSObject cannot be downcasted to NSNibConnector")
        }
    }
}
impl INSNibConnector for NSNibConnector {}
pub trait INSNibConnector: Sized + std::ops::Deref {
    unsafe fn replaceObject_withObject_(&self, oldObject: id, newObject: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, replaceObject : oldObject, withObject : newObject)
    }
    unsafe fn establishConnection(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, establishConnection)
    }
    unsafe fn source(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, source)
    }
    unsafe fn setSource_(&self, source: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setSource : source)
    }
    unsafe fn destination(&self) -> id
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, destination)
    }
    unsafe fn setDestination_(&self, destination: id)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setDestination : destination)
    }
    unsafe fn label(&self) -> NSString
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, label)
    }
    unsafe fn setLabel_(&self, label: NSString)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, setLabel : label)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSNibControlConnector(pub id);
impl std::ops::Deref for NSNibControlConnector {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSNibControlConnector {}
impl NSNibControlConnector {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSNibControlConnector").unwrap(), alloc) })
    }
}
impl INSNibConnector for NSNibControlConnector {}
impl PNSCoding for NSNibControlConnector {}
impl From<NSNibControlConnector> for NSNibConnector {
    fn from(child: NSNibControlConnector) -> NSNibConnector {
        NSNibConnector(child.0)
    }
}
impl std::convert::TryFrom<NSNibConnector> for NSNibControlConnector {
    type Error = &'static str;
    fn try_from(parent: NSNibConnector) -> Result<NSNibControlConnector, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSNibControlConnector").unwrap()) };
        if is_kind_of {
            Ok(NSNibControlConnector(parent.0))
        } else {
            Err("This NSNibConnector cannot be downcasted to NSNibControlConnector")
        }
    }
}
impl INSObject for NSNibControlConnector {}
impl PNSObject for NSNibControlConnector {}
impl INSNibControlConnector for NSNibControlConnector {}
pub trait INSNibControlConnector: Sized + std::ops::Deref {
    unsafe fn establishConnection(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, establishConnection)
    }
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
pub struct NSNibOutletConnector(pub id);
impl std::ops::Deref for NSNibOutletConnector {
    type Target = objc2::runtime::AnyObject;
    fn deref(&self) -> &Self::Target {
        unsafe { &*self.0 }
    }
}
unsafe impl objc2::Message for NSNibOutletConnector {}
impl NSNibOutletConnector {
    pub fn alloc() -> Self {
        Self(unsafe { msg_send!(&*objc2::runtime::AnyClass::get(c"NSNibOutletConnector").unwrap(), alloc) })
    }
}
impl INSNibConnector for NSNibOutletConnector {}
impl PNSCoding for NSNibOutletConnector {}
impl std::convert::TryFrom<NSNibConnector> for NSNibOutletConnector {
    type Error = &'static str;
    fn try_from(parent: NSNibConnector) -> Result<NSNibOutletConnector, Self::Error> {
        let is_kind_of: bool =
            unsafe { msg_send!(&*parent, isKindOfClass : objc2::runtime::AnyClass::get(c"NSNibOutletConnector").unwrap()) };
        if is_kind_of {
            Ok(NSNibOutletConnector(parent.0))
        } else {
            Err("This NSNibConnector cannot be downcasted to NSNibOutletConnector")
        }
    }
}
impl INSObject for NSNibOutletConnector {}
impl PNSObject for NSNibOutletConnector {}
impl INSNibOutletConnector for NSNibOutletConnector {}
pub trait INSNibOutletConnector: Sized + std::ops::Deref {
    unsafe fn establishConnection(&self)
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&**self, establishConnection)
    }
}
pub trait PCTAdaptiveImageProviding: Sized + std::ops::Deref {
    unsafe fn imageForProposedSize_scaleFactor_imageOffset_imageSize_(
        &self,
        proposedSize: CGSize,
        scaleFactor: CGFloat,
        outImageOffset: *mut CGPoint,
        outImageSize: *mut CGSize,
    ) -> CGImageRef
    where
        <Self as std::ops::Deref>::Target: objc2::Message + Sized,
    {
        msg_send!(&** self, imageForProposedSize : proposedSize, scaleFactor : scaleFactor, imageOffset : outImageOffset, imageSize : outImageSize)
    }
}
impl PCTAdaptiveImageProviding for NSAdaptiveImageGlyph {}
unsafe extern "C" {
    pub static mut NSCalibratedWhiteColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSCalibratedRGBColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSDeviceWhiteColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSDeviceRGBColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSDeviceCMYKColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSNamedColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSPatternColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSCustomColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSCalibratedBlackColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub static mut NSDeviceBlackColorSpace: NSColorSpaceName;
}
unsafe extern "C" {
    pub fn NSBestDepth(
        colorSpace: NSString,
        bps: NSInteger,
        bpp: NSInteger,
        planar: BOOL,
        exactMatch: *mut BOOL,
    ) -> NSWindowDepth;
}
unsafe extern "C" {
    pub fn NSPlanarFromDepth(depth: NSWindowDepth) -> BOOL;
}
unsafe extern "C" {
    pub fn NSColorSpaceFromDepth(depth: NSWindowDepth) -> NSColorSpaceName;
}
unsafe extern "C" {
    pub fn NSBitsPerSampleFromDepth(depth: NSWindowDepth) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSBitsPerPixelFromDepth(depth: NSWindowDepth) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSNumberOfColorComponents(colorSpaceName: NSString) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSAvailableWindowDepths() -> *const NSWindowDepth;
}
unsafe extern "C" {
    pub static NSWhite: CGFloat;
}
unsafe extern "C" {
    pub static NSLightGray: CGFloat;
}
unsafe extern "C" {
    pub static NSDarkGray: CGFloat;
}
unsafe extern "C" {
    pub static NSBlack: CGFloat;
}
unsafe extern "C" {
    pub static mut NSDeviceResolution: NSDeviceDescriptionKey;
}
unsafe extern "C" {
    pub static mut NSDeviceColorSpaceName: NSDeviceDescriptionKey;
}
unsafe extern "C" {
    pub static mut NSDeviceBitsPerSample: NSDeviceDescriptionKey;
}
unsafe extern "C" {
    pub static mut NSDeviceIsScreen: NSDeviceDescriptionKey;
}
unsafe extern "C" {
    pub static mut NSDeviceIsPrinter: NSDeviceDescriptionKey;
}
unsafe extern "C" {
    pub static mut NSDeviceSize: NSDeviceDescriptionKey;
}
unsafe extern "C" {
    pub fn NSRectFill(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSRectFillList(rects: *const NSRect, count: NSInteger);
}
unsafe extern "C" {
    pub fn NSRectFillListWithGrays(rects: *const NSRect, grays: *const CGFloat, num: NSInteger);
}
unsafe extern "C" {
    pub fn NSRectFillListWithColors(rects: *const NSRect, colors: *const NSColor, num: NSInteger);
}
unsafe extern "C" {
    pub fn NSRectFillUsingOperation(rect: NSRect, op: NSCompositingOperation);
}
unsafe extern "C" {
    pub fn NSRectFillListUsingOperation(
        rects: *const NSRect,
        count: NSInteger,
        op: NSCompositingOperation,
    );
}
unsafe extern "C" {
    pub fn NSRectFillListWithColorsUsingOperation(
        rects: *const NSRect,
        colors: *const NSColor,
        num: NSInteger,
        op: NSCompositingOperation,
    );
}
unsafe extern "C" {
    pub fn NSFrameRect(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSFrameRectWithWidth(rect: NSRect, frameWidth: CGFloat);
}
unsafe extern "C" {
    pub fn NSFrameRectWithWidthUsingOperation(
        rect: NSRect,
        frameWidth: CGFloat,
        op: NSCompositingOperation,
    );
}
unsafe extern "C" {
    pub fn NSRectClip(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSRectClipList(rects: *const NSRect, count: NSInteger);
}
unsafe extern "C" {
    pub fn NSDrawTiledRects(
        boundsRect: NSRect,
        clipRect: NSRect,
        sides: *const NSRectEdge,
        grays: *const CGFloat,
        count: NSInteger,
    ) -> NSRect;
}
unsafe extern "C" {
    pub fn NSDrawGrayBezel(rect: NSRect, clipRect: NSRect);
}
unsafe extern "C" {
    pub fn NSDrawGroove(rect: NSRect, clipRect: NSRect);
}
unsafe extern "C" {
    pub fn NSDrawWhiteBezel(rect: NSRect, clipRect: NSRect);
}
unsafe extern "C" {
    pub fn NSDrawButton(rect: NSRect, clipRect: NSRect);
}
unsafe extern "C" {
    pub fn NSEraseRect(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSReadPixel(passedPoint: NSPoint) -> NSColor;
}
unsafe extern "C" {
    pub fn NSDrawBitmap(
        rect: NSRect,
        width: NSInteger,
        height: NSInteger,
        bps: NSInteger,
        spp: NSInteger,
        bpp: NSInteger,
        bpr: NSInteger,
        isPlanar: BOOL,
        hasAlpha: BOOL,
        colorSpaceName: NSString,
        data: *const *const ::std::os::raw::c_uchar,
    );
}
unsafe extern "C" {
    pub fn NSHighlightRect(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSBeep();
}
unsafe extern "C" {
    pub fn NSGetWindowServerMemory(
        context: NSInteger,
        virtualMemory: *mut NSInteger,
        windowBackingMemory: *mut NSInteger,
        windowDumpString: *mut NSString,
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSDrawColorTiledRects(
        boundsRect: NSRect,
        clipRect: NSRect,
        sides: *const NSRectEdge,
        colors: *mut NSColor,
        count: NSInteger,
    ) -> NSRect;
}
unsafe extern "C" {
    pub fn NSDrawDarkBezel(rect: NSRect, clipRect: NSRect);
}
unsafe extern "C" {
    pub fn NSDrawLightBezel(rect: NSRect, clipRect: NSRect);
}
unsafe extern "C" {
    pub fn NSDottedFrameRect(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSDrawWindowBackground(rect: NSRect);
}
unsafe extern "C" {
    pub fn NSSetFocusRingStyle(placement: NSFocusRingPlacement);
}
unsafe extern "C" {
    pub fn NSDisableScreenUpdates();
}
unsafe extern "C" {
    pub fn NSEnableScreenUpdates();
}
unsafe extern "C" {
    pub fn NSShowAnimationEffect(
        animationEffect: NSAnimationEffect,
        centerLocation: NSPoint,
        size: NSSize,
        animationDelegate: id,
        didEndSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
    );
}
unsafe extern "C" {
    pub fn NSCountWindows(count: *mut NSInteger);
}
unsafe extern "C" {
    pub fn NSWindowList(size: NSInteger, list: *mut NSInteger);
}
unsafe extern "C" {
    pub fn NSCountWindowsForContext(context: NSInteger, count: *mut NSInteger);
}
unsafe extern "C" {
    pub fn NSWindowListForContext(context: NSInteger, size: NSInteger, list: *mut NSInteger);
}
unsafe extern "C" {
    pub fn NSCopyBits(srcGState: NSInteger, srcRect: NSRect, destPoint: NSPoint);
}
unsafe extern "C" {
    pub static mut NSGraphicsContextDestinationAttributeName: NSGraphicsContextAttributeKey;
}
unsafe extern "C" {
    pub static mut NSGraphicsContextRepresentationFormatAttributeName:
        NSGraphicsContextAttributeKey;
}
unsafe extern "C" {
    pub static mut NSGraphicsContextPSFormat: NSGraphicsContextRepresentationFormatName;
}
unsafe extern "C" {
    pub static mut NSGraphicsContextPDFFormat: NSGraphicsContextRepresentationFormatName;
}
unsafe extern "C" {
    pub static mut NSTextLineTooLongException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSTextNoSelectionException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSWordTablesWriteException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSWordTablesReadException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSTextReadException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSTextWriteException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPasteboardCommunicationException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPrintingCommunicationException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSAbortModalException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSAbortPrintingException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSIllegalSelectorException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSAppKitVirtualMemoryException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBadRTFDirectiveException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBadRTFFontTableException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBadRTFStyleSheetException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSTypedStreamVersionException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSTIFFException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPrintPackageException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBadRTFColorTableException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSDraggingException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSColorListIOException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSColorListNotEditableException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBadBitmapParametersException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSWindowServerCommunicationException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSFontUnavailableException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPPDIncludeNotFoundException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPPDParseException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPPDIncludeStackOverflowException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSPPDIncludeStackUnderflowException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSRTFPropertyStackOverflowException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSAppKitIgnoredException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBadComparisonException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSImageCacheException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSNibLoadingException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSBrowserIllegalDelegateException: NSExceptionName;
}
unsafe extern "C" {
    pub static mut NSAccessibilityException: NSExceptionName;
}
unsafe extern "C" {
    pub static NSAccessibilityErrorCodeExceptionInfo: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilityRoleAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRoleDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySubroleAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHelpAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMinValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMaxValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityEnabledAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFocusedAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityParentAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityChildrenAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityTopLevelUIElementAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedChildrenAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVisibleChildrenAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityPositionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySizeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityContentsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityTitleAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityShownMenuAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityValueDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySharedFocusElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityPreviousContentsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityNextContentsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHeaderAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityEditedAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityTabsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHorizontalScrollBarAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVerticalScrollBarAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityOverflowButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityIncrementButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDecrementButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFilenameAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityExpandedAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySplittersAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDocumentAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityActivationPointAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityURLAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityIndexAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowCountAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityColumnCountAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityOrderedByRowAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityWarningValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityCriticalValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityPlaceholderValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityContainsProtectedContentAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityAlternateUIVisibleAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRequiredAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityAutoInteractableAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDateTimeComponentsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityEmbeddedImageDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityPathAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityTextInputMarkedRangeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityBlockQuoteLevelAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevelAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLanguageAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVisitedAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityTitleUIElementAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityServesAsTitleForUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLinkedUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedTextAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedTextRangeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityNumberOfCharactersAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVisibleCharacterRangeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySharedTextUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySharedCharacterRangeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityInsertionPointLineNumberAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedTextRangesAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLineForIndexParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRangeForLineParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityStringForRangeParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRangeForPositionParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRangeForIndexParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityBoundsForRangeParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRTFForRangeParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityStyleRangeForIndexParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityAttributedStringForRangeParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFontTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityForegroundColorTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityBackgroundColorTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityUnderlineColorTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityStrikethroughColorTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityUnderlineTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilitySuperscriptTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityStrikethroughTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityShadowTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityAttachmentTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityLinkTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityAutocorrectedTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTextAlignmentAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontBoldAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontItalicAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityChildrenInNavigationOrderAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityIndexForChildUIElementAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityIndexForChildUIElementInNavigationOrderAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityListItemPrefixTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityListItemIndexTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityListItemLevelTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityMisspelledTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityMarkedMisspelledTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityLanguageTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityCustomTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityAnnotationTextAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTextCompletionAttribute: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilityAnnotationLabel: NSAccessibilityAnnotationAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityAnnotationElement: NSAccessibilityAnnotationAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityAnnotationLocation: NSAccessibilityAnnotationAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontNameKey: NSAccessibilityFontAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontFamilyKey: NSAccessibilityFontAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityVisibleNameKey: NSAccessibilityFontAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontSizeKey: NSAccessibilityFontAttributeKey;
}
unsafe extern "C" {
    pub static NSAccessibilityMainAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMinimizedAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityCloseButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityZoomButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMinimizeButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityToolbarButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityProxyAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityGrowAreaAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityModalAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDefaultButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityCancelButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFullScreenButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMenuBarAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFrontmostAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHiddenAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMainWindowAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFocusedWindowAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityFocusedUIElementAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityExtrasMenuBarAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityOrientationAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVerticalOrientationValue: NSAccessibilityOrientationValue;
}
unsafe extern "C" {
    pub static NSAccessibilityHorizontalOrientationValue: NSAccessibilityOrientationValue;
}
unsafe extern "C" {
    pub static NSAccessibilityUnknownOrientationValue: NSAccessibilityOrientationValue;
}
unsafe extern "C" {
    pub static NSAccessibilityColumnTitlesAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchMenuAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityClearButtonAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVisibleRowsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedRowsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityColumnsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVisibleColumnsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedColumnsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySortDirectionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedCellsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVisibleCellsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowHeaderUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityColumnHeaderUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityCellForColumnAndRowParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowIndexRangeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityColumnIndexRangeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHorizontalUnitsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVerticalUnitsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHorizontalUnitDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityVerticalUnitDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLayoutPointForScreenPointParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLayoutSizeForScreenSizeParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityScreenPointForLayoutPointParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityScreenSizeForLayoutSizeParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityHandlesAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityAscendingSortDirectionValue: NSAccessibilitySortDirectionValue;
}
unsafe extern "C" {
    pub static NSAccessibilityDescendingSortDirectionValue: NSAccessibilitySortDirectionValue;
}
unsafe extern "C" {
    pub static NSAccessibilityUnknownSortDirectionValue: NSAccessibilitySortDirectionValue;
}
unsafe extern "C" {
    pub static NSAccessibilityDisclosingAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDisclosedRowsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDisclosedByRowAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityDisclosureLevelAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityAllowedValuesAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLabelUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLabelValueAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMatteHoleAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMatteContentUIElementAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMarkerUIElementsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMarkerValuesAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMarkerGroupUIElementAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityUnitsAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityUnitDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMarkerTypeAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityMarkerTypeDescriptionAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityIdentifierAttribute: NSAccessibilityAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityLeftTabStopMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityRightTabStopMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityCenterTabStopMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityDecimalTabStopMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadIndentMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityTailIndentMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityFirstLineIndentMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityUnknownMarkerTypeValue: NSAccessibilityRulerMarkerTypeValue;
}
unsafe extern "C" {
    pub static NSAccessibilityInchesUnitValue: NSAccessibilityRulerUnitValue;
}
unsafe extern "C" {
    pub static NSAccessibilityCentimetersUnitValue: NSAccessibilityRulerUnitValue;
}
unsafe extern "C" {
    pub static NSAccessibilityPointsUnitValue: NSAccessibilityRulerUnitValue;
}
unsafe extern "C" {
    pub static NSAccessibilityPicasUnitValue: NSAccessibilityRulerUnitValue;
}
unsafe extern "C" {
    pub static NSAccessibilityUnknownUnitValue: NSAccessibilityRulerUnitValue;
}
unsafe extern "C" {
    pub static NSAccessibilityPressAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityIncrementAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityDecrementAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityConfirmAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityPickAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityCancelAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityRaiseAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityShowMenuAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityDeleteAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityScrollToVisibleAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityShowAlternateUIAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityShowDefaultUIAction: NSAccessibilityActionName;
}
unsafe extern "C" {
    pub static NSAccessibilityMainWindowChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityFocusedWindowChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityFocusedUIElementChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityApplicationActivatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityApplicationDeactivatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityApplicationHiddenNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityApplicationShownNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowCreatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowMovedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowResizedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowMiniaturizedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowDeminiaturizedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDrawerCreatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySheetCreatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityUIElementDestroyedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityValueChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityTitleChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityResizedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityMovedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityCreatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityLayoutChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityHelpTagCreatedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedTextChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowCountChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedChildrenChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedRowsChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedColumnsChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowExpandedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityRowCollapsedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityAutocorrectionOccurredNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityTextInputMarkingSessionBeganNotification:
        NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityTextInputMarkingSessionEndedNotification:
        NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDraggingSourceDragBeganNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDraggingSourceDragEndedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDraggingDestinationDropAllowedNotification:
        NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDraggingDestinationDropNotAllowedNotification:
        NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDraggingDestinationDragAcceptedNotification:
        NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityDraggingDestinationDragNotAcceptedNotification:
        NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedCellsChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityUnitsChangedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilitySelectedChildrenMovedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityAnnouncementRequestedNotification: NSAccessibilityNotificationName;
}
unsafe extern "C" {
    pub static NSAccessibilityUnknownRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityButtonRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityRadioButtonRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityCheckBoxRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilitySliderRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityTabGroupRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityTextFieldRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityStaticTextRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityTextAreaRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityScrollAreaRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityPopUpButtonRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityMenuButtonRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityTableRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityApplicationRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityGroupRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityRadioGroupRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityListRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityScrollBarRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityValueIndicatorRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityImageRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityMenuBarRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityMenuBarItemRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityMenuRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityMenuItemRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityColumnRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityRowRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityToolbarRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityBusyIndicatorRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityProgressIndicatorRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityWindowRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityDrawerRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilitySystemWideRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityOutlineRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityIncrementorRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityBrowserRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityComboBoxRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilitySplitGroupRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilitySplitterRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityColorWellRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityGrowAreaRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilitySheetRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityHelpTagRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityMatteRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityRulerRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityRulerMarkerRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityLinkRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityDisclosureTriangleRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityGridRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityRelevanceIndicatorRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityDateTimeAreaRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityLevelIndicatorRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityCellRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityPopoverRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityPageRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityListMarkerRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityWebAreaRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityLayoutAreaRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityLayoutItemRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityHandleRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSAccessibilityUnknownSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityCloseButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityZoomButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityMinimizeButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityToolbarButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityTableRowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityOutlineRowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySecureTextFieldSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityStandardWindowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityDialogSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySystemDialogSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityFloatingWindowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySystemFloatingWindowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityIncrementArrowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityDecrementArrowSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityIncrementPageSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityDecrementPageSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchFieldSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityTextAttachmentSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityTextLinkSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityTimelineSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySortButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityRatingIndicatorSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityContentListSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityDefinitionListSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityFullScreenButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityToggleSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySwitchSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityDescriptionListSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityTabButtonSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityCollectionListSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySectionListSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilitySuggestionSubrole: NSAccessibilitySubrole;
}
unsafe extern "C" {
    pub static NSAccessibilityUIElementsKey: NSAccessibilityNotificationUserInfoKey;
}
unsafe extern "C" {
    pub static NSAccessibilityPriorityKey: NSAccessibilityNotificationUserInfoKey;
}
unsafe extern "C" {
    pub static NSAccessibilityAnnouncementKey: NSAccessibilityNotificationUserInfoKey;
}
unsafe extern "C" {
    pub fn NSAccessibilityPostNotificationWithUserInfo(
        element: id,
        notification: NSString,
        userInfo: NSDictionary,
    );
}
unsafe extern "C" {
    pub static NSAccessibilityUIElementsForSearchPredicateParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilityResultsForSearchPredicateParameterizedAttribute:
        NSAccessibilityParameterizedAttributeName;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchIdentifiersKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchCurrentElementKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchCurrentRangeKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchDirectionKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchResultsLimitKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchTextKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchDirectionNext: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchDirectionPrevious: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchResultElementKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchResultRangeKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchResultDescriptionOverrideKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilitySearchResultLoaderKey: NSString;
}
unsafe extern "C" {
    pub static NSAccessibilityAnyTypeSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityArticleSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityBlockquoteSameLevelSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityBlockquoteSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityBoldFontSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityButtonSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityCheckBoxSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityControlSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityDifferentTypeSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontChangeSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFontColorChangeSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityFrameSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityGraphicSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevel1SearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevel2SearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevel3SearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevel4SearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevel5SearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingLevel6SearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingSameLevelSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityHeadingSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityItalicFontSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityKeyboardFocusableSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityLandmarkSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityLinkSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityListSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityLiveRegionSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityMisspelledWordSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityOutlineSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityPlainTextSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityRadioGroupSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilitySameTypeSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityStaticTextSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityStyleChangeSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTableSameLevelSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTableSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTextFieldSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTextStateChangeTypeKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityTextStateSyncKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityUnderlineSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityUnvisitedLinkSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilityVisitedLinkSearchKey: NSAccessibilitySearchKey;
}
unsafe extern "C" {
    pub static NSAccessibilitySortButtonRole: NSAccessibilityRole;
}
unsafe extern "C" {
    pub static NSWorkspaceDesktopImageScalingKey: NSWorkspaceDesktopImageOptionKey;
}
unsafe extern "C" {
    pub static NSWorkspaceDesktopImageAllowClippingKey: NSWorkspaceDesktopImageOptionKey;
}
unsafe extern "C" {
    pub static NSWorkspaceDesktopImageFillColorKey: NSWorkspaceDesktopImageOptionKey;
}
unsafe extern "C" {
    pub static NSWorkspaceApplicationKey: NSString;
}
unsafe extern "C" {
    pub static mut NSWorkspaceWillLaunchApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDidLaunchApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDidTerminateApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceDidHideApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceDidUnhideApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceDidActivateApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceDidDeactivateApplicationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceVolumeLocalizedNameKey: NSString;
}
unsafe extern "C" {
    pub static NSWorkspaceVolumeURLKey: NSString;
}
unsafe extern "C" {
    pub static NSWorkspaceVolumeOldLocalizedNameKey: NSString;
}
unsafe extern "C" {
    pub static NSWorkspaceVolumeOldURLKey: NSString;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDidMountNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDidUnmountNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceWillUnmountNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceDidRenameVolumeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceWillPowerOffNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceWillSleepNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDidWakeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceScreensDidSleepNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceScreensDidWakeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceSessionDidBecomeActiveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceSessionDidResignActiveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceDidChangeFileLabelsNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceActiveSpaceDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWorkspaceLaunchConfigurationAppleEvent: NSWorkspaceLaunchConfigurationKey;
}
unsafe extern "C" {
    pub static NSWorkspaceLaunchConfigurationArguments: NSWorkspaceLaunchConfigurationKey;
}
unsafe extern "C" {
    pub static NSWorkspaceLaunchConfigurationEnvironment: NSWorkspaceLaunchConfigurationKey;
}
unsafe extern "C" {
    pub static NSWorkspaceLaunchConfigurationArchitecture: NSWorkspaceLaunchConfigurationKey;
}
unsafe extern "C" {
    pub static mut NSWorkspaceMoveOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceCopyOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceLinkOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceCompressOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDecompressOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceEncryptOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDecryptOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDestroyOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceRecycleOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDuplicateOperation: NSWorkspaceFileOperationName;
}
unsafe extern "C" {
    pub static mut NSWorkspaceDidPerformFileOperationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSPlainFileType: NSString;
}
unsafe extern "C" {
    pub static mut NSDirectoryFileType: NSString;
}
unsafe extern "C" {
    pub static mut NSApplicationFileType: NSString;
}
unsafe extern "C" {
    pub static mut NSFilesystemFileType: NSString;
}
unsafe extern "C" {
    pub static mut NSShellCommandFileType: NSString;
}
unsafe extern "C" {
    pub static NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub fn NSAccessibilityFrameInView(parentView: NSView, frame: NSRect) -> NSRect;
}
unsafe extern "C" {
    pub fn NSAccessibilityPointInView(parentView: NSView, point: NSPoint) -> NSPoint;
}
unsafe extern "C" {
    pub fn NSAccessibilitySetMayContainProtectedContent(flag: BOOL) -> BOOL;
}
unsafe extern "C" {
    pub fn NSAccessibilityRoleDescription(role: NSString, subrole: NSString) -> NSString;
}
unsafe extern "C" {
    pub fn NSAccessibilityRoleDescriptionForUIElement(element: id) -> NSString;
}
unsafe extern "C" {
    pub fn NSAccessibilityActionDescription(action: NSString) -> NSString;
}
unsafe extern "C" {
    pub fn NSAccessibilityRaiseBadArgumentException(element: id, attribute: NSString, value: id);
}
unsafe extern "C" {
    pub fn NSAccessibilityUnignoredAncestor(element: id) -> id;
}
unsafe extern "C" {
    pub fn NSAccessibilityUnignoredDescendant(element: id) -> id;
}
unsafe extern "C" {
    pub fn NSAccessibilityUnignoredChildren(originalChildren: NSArray) -> NSArray;
}
unsafe extern "C" {
    pub fn NSAccessibilityUnignoredChildrenForOnlyChild(originalChild: id) -> NSArray;
}
unsafe extern "C" {
    pub fn NSAccessibilityPostNotification(element: id, notification: NSString);
}
unsafe extern "C" {
    pub static NSPasteboardTypeString: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypePDF: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeTIFF: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypePNG: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeRTF: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeRTFD: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeHTML: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeTabularText: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeFont: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeRuler: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeColor: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeSound: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeMultipleTextSelection: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeTextFinderOptions: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeURL: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeFileURL: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSPasteboardNameGeneral: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSPasteboardNameFont: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSPasteboardNameRuler: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSPasteboardNameFind: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSPasteboardNameDrag: NSPasteboardName;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternProbableWebURL: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternProbableWebSearch: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternNumber: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternLink: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternPhoneNumber: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternEmailAddress: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternPostalAddress: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternCalendarEvent: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternShipmentTrackingNumber: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternFlightNumber: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardDetectionPatternMoneyAmount: NSPasteboardDetectionPattern;
}
unsafe extern "C" {
    pub static NSPasteboardMetadataTypeContentType: NSPasteboardMetadataType;
}
unsafe extern "C" {
    pub static NSPasteboardURLReadingFileURLsOnlyKey: NSPasteboardReadingOptionKey;
}
unsafe extern "C" {
    pub static NSPasteboardURLReadingContentsConformToTypesKey: NSPasteboardReadingOptionKey;
}
unsafe extern "C" {
    pub static mut NSFileContentsPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub fn NSCreateFilenamePboardType(fileType: NSString) -> NSPasteboardType;
}
unsafe extern "C" {
    pub fn NSCreateFileContentsPboardType(fileType: NSString) -> NSPasteboardType;
}
unsafe extern "C" {
    pub fn NSGetFileType(pboardType: NSString) -> NSString;
}
unsafe extern "C" {
    pub fn NSGetFileTypes(pboardTypes: NSArray) -> NSArray;
}
unsafe extern "C" {
    pub static mut NSStringPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSFilenamesPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSTIFFPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSRTFPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSTabularTextPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSFontPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSRulerPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSColorPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSRTFDPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSHTMLPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSURLPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSPDFPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSMultipleTextSelectionPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSPostScriptPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSVCardPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSInkTextPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSFilesPromisePboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static NSPasteboardTypeFindPanelSearchOptions: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSGeneralPboard: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSFontPboard: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSRulerPboard: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSFindPboard: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSDragPboard: NSPasteboardName;
}
unsafe extern "C" {
    pub static mut NSPICTPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSNibOwner: NSString;
}
unsafe extern "C" {
    pub static mut NSNibTopLevelObjects: NSString;
}
unsafe extern "C" {
    pub static mut NSAnimationProgressMarkNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSAnimationProgressMark: NSString;
}
unsafe extern "C" {
    pub static mut NSViewAnimationTargetKey: NSViewAnimationKey;
}
unsafe extern "C" {
    pub static mut NSViewAnimationStartFrameKey: NSViewAnimationKey;
}
unsafe extern "C" {
    pub static mut NSViewAnimationEndFrameKey: NSViewAnimationKey;
}
unsafe extern "C" {
    pub static mut NSViewAnimationEffectKey: NSViewAnimationKey;
}
unsafe extern "C" {
    pub static mut NSViewAnimationFadeInEffect: NSViewAnimationEffectName;
}
unsafe extern "C" {
    pub static mut NSViewAnimationFadeOutEffect: NSViewAnimationEffectName;
}
unsafe extern "C" {
    pub static mut NSAnimationTriggerOrderIn: NSAnimatablePropertyKey;
}
unsafe extern "C" {
    pub static mut NSAnimationTriggerOrderOut: NSAnimatablePropertyKey;
}
unsafe extern "C" {
    pub static NSAppearanceNameAqua: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameDarkAqua: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameLightContent: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameVibrantDark: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameVibrantLight: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameAccessibilityHighContrastAqua: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameAccessibilityHighContrastDarkAqua: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameAccessibilityHighContrastVibrantLight: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSAppearanceNameAccessibilityHighContrastVibrantDark: NSAppearanceName;
}
unsafe extern "C" {
    pub static NSFullScreenModeAllScreens: NSViewFullScreenModeOptionKey;
}
unsafe extern "C" {
    pub static NSFullScreenModeSetting: NSViewFullScreenModeOptionKey;
}
unsafe extern "C" {
    pub static NSFullScreenModeWindowLevel: NSViewFullScreenModeOptionKey;
}
unsafe extern "C" {
    pub static NSFullScreenModeApplicationPresentationOptions: NSViewFullScreenModeOptionKey;
}
unsafe extern "C" {
    pub static NSDefinitionPresentationTypeKey: NSDefinitionOptionKey;
}
unsafe extern "C" {
    pub static NSDefinitionPresentationTypeOverlay: NSDefinitionPresentationType;
}
unsafe extern "C" {
    pub static NSDefinitionPresentationTypeDictionaryApplication: NSDefinitionPresentationType;
}
unsafe extern "C" {
    pub static mut NSViewFrameDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSViewFocusDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSViewBoundsDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSViewGlobalFrameDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSViewDidUpdateTrackingAreasNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTextDidBeginEditingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTextDidEndEditingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTextDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSTextMovementUserInfoKey: NSString;
}
unsafe extern "C" {
    pub fn NSDrawThreePartImage(
        frame: NSRect,
        startCap: NSImage,
        centerFill: NSImage,
        endCap: NSImage,
        vertical: BOOL,
        op: NSCompositingOperation,
        alphaFraction: CGFloat,
        flipped: BOOL,
    );
}
unsafe extern "C" {
    pub fn NSDrawNinePartImage(
        frame: NSRect,
        topLeftCorner: NSImage,
        topEdgeFill: NSImage,
        topRightCorner: NSImage,
        leftEdgeFill: NSImage,
        centerFill: NSImage,
        rightEdgeFill: NSImage,
        bottomLeftCorner: NSImage,
        bottomEdgeFill: NSImage,
        bottomRightCorner: NSImage,
        op: NSCompositingOperation,
        alphaFraction: CGFloat,
        flipped: BOOL,
    );
}
unsafe extern "C" {
    pub static mut NSControlTintDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSMenuItemImportFromDeviceIdentifier: NSUserInterfaceItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSMenuWillSendActionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSMenuDidSendActionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSMenuDidAddItemNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSMenuDidRemoveItemNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSMenuDidChangeItemNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSMenuDidBeginTrackingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSMenuDidEndTrackingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSPrintPaperName: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintPaperSize: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintOrientation: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintScalingFactor: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintLeftMargin: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintRightMargin: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintTopMargin: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintBottomMargin: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintHorizontallyCentered: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintVerticallyCentered: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintHorizontalPagination: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintVerticalPagination: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintPrinter: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintCopies: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintAllPages: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintFirstPage: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintLastPage: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintMustCollate: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintReversePageOrder: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintJobDisposition: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintPagesAcross: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintPagesDown: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintTime: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintDetailedErrorReporting: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintFaxNumber: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintPrinterName: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintSelectionOnly: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintJobSavingURL: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintJobSavingFileNameExtensionHidden: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintHeaderAndFooter: NSPrintInfoAttributeKey;
}
unsafe extern "C" {
    pub static NSPrintSpoolJob: NSPrintJobDispositionValue;
}
unsafe extern "C" {
    pub static NSPrintPreviewJob: NSPrintJobDispositionValue;
}
unsafe extern "C" {
    pub static NSPrintSaveJob: NSPrintJobDispositionValue;
}
unsafe extern "C" {
    pub static NSPrintCancelJob: NSPrintJobDispositionValue;
}
unsafe extern "C" {
    pub static NSPrintFormName: NSString;
}
unsafe extern "C" {
    pub static NSPrintJobFeatures: NSString;
}
unsafe extern "C" {
    pub static NSPrintManualFeed: NSString;
}
unsafe extern "C" {
    pub static NSPrintPagesPerSheet: NSString;
}
unsafe extern "C" {
    pub static NSPrintPaperFeed: NSString;
}
unsafe extern "C" {
    pub static NSPrintSavePath: NSString;
}
unsafe extern "C" {
    pub static mut NSMultipleValuesMarker: id;
}
unsafe extern "C" {
    pub static mut NSNoSelectionMarker: id;
}
unsafe extern "C" {
    pub static mut NSNotApplicableMarker: id;
}
unsafe extern "C" {
    pub fn NSIsControllerMarker(object: id) -> BOOL;
}
unsafe extern "C" {
    pub static mut NSObservedObjectKey: NSBindingInfoKey;
}
unsafe extern "C" {
    pub static mut NSObservedKeyPathKey: NSBindingInfoKey;
}
unsafe extern "C" {
    pub static mut NSOptionsKey: NSBindingInfoKey;
}
unsafe extern "C" {
    pub static mut NSAlignmentBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSAlternateImageBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSAlternateTitleBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSAnimateBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSAnimationDelayBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSArgumentBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSAttributedStringBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentArrayBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentArrayForMultipleSelectionBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentDictionaryBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentHeightBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentObjectBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentObjectsBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentSetBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentValuesBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSContentWidthBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSCriticalValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSDataBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSDisplayPatternTitleBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSDisplayPatternValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSDocumentEditedBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSDoubleClickArgumentBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSDoubleClickTargetBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSEditableBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSEnabledBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSExcludedKeysBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFilterPredicateBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFontBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFontBoldBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFontFamilyNameBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFontItalicBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFontNameBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSFontSizeBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSHeaderTitleBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSHiddenBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSImageBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSIncludedKeysBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSInitialKeyBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSInitialValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSIsIndeterminateBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSLabelBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSLocalizedKeyDictionaryBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSManagedObjectContextBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSMaximumRecentsBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSMaxValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSMaxWidthBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSMinValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSMinWidthBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSMixedStateImageBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSOffStateImageBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSOnStateImageBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSPositioningRectBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSPredicateBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSRecentSearchesBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSRepresentedFilenameBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSRowHeightBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedIdentifierBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedIndexBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedLabelBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedObjectBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedObjectsBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedTagBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectedValuesBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectionIndexesBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSelectionIndexPathsBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSSortDescriptorsBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSTargetBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSTextColorBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSTitleBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSToolTipBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSTransparentBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSValuePathBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSValueURLBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSVisibleBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSWarningValueBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSWidthBinding: NSBindingName;
}
unsafe extern "C" {
    pub static mut NSAllowsEditingMultipleValuesSelectionBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSAllowsNullArgumentBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSAlwaysPresentsApplicationModalAlertsBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSConditionallySetsEditableBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSConditionallySetsEnabledBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSConditionallySetsHiddenBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSContinuouslyUpdatesValueBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSCreatesSortDescriptorBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSDeletesObjectsOnRemoveBindingsOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSDisplayNameBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSDisplayPatternBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSContentPlacementTagBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSHandlesContentAsCompoundValueBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSInsertsNullPlaceholderBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSInvokesSeparatelyWithArrayObjectsBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSMultipleValuesPlaceholderBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSNoSelectionPlaceholderBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSNotApplicablePlaceholderBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSNullPlaceholderBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSRaisesForNotApplicableKeysBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSPredicateFormatBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSSelectorNameBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSSelectsAllWhenSettingContentBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSValidatesImmediatelyBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSValueTransformerNameBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static mut NSValueTransformerBindingOption: NSBindingOption;
}
unsafe extern "C" {
    pub static NSUserActivityDocumentURLKey: NSString;
}
unsafe extern "C" {
    pub static NSAppKitVersionNumber: NSAppKitVersion;
}
unsafe extern "C" {
    pub static mut NSModalPanelRunLoopMode: NSRunLoopMode;
}
unsafe extern "C" {
    pub static mut NSEventTrackingRunLoopMode: NSRunLoopMode;
}
unsafe extern "C" {
    pub static mut NSApp: NSApplication;
}
unsafe extern "C" {
    pub static NSAboutPanelOptionCredits: NSAboutPanelOptionKey;
}
unsafe extern "C" {
    pub static NSAboutPanelOptionApplicationName: NSAboutPanelOptionKey;
}
unsafe extern "C" {
    pub static NSAboutPanelOptionApplicationIcon: NSAboutPanelOptionKey;
}
unsafe extern "C" {
    pub static NSAboutPanelOptionVersion: NSAboutPanelOptionKey;
}
unsafe extern "C" {
    pub static NSAboutPanelOptionApplicationVersion: NSAboutPanelOptionKey;
}
unsafe extern "C" {
    pub fn NSApplicationMain(
        argc: ::std::os::raw::c_int,
        argv: *mut *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
unsafe extern "C" {
    pub fn NSApplicationLoad() -> BOOL;
}
unsafe extern "C" {
    pub fn NSShowsServicesMenuItem(itemName: NSString) -> BOOL;
}
unsafe extern "C" {
    pub fn NSSetShowsServicesMenuItem(itemName: NSString, enabled: BOOL) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSUpdateDynamicServices();
}
unsafe extern "C" {
    pub fn NSPerformService(itemName: NSString, pboard: NSPasteboard) -> BOOL;
}
unsafe extern "C" {
    pub fn NSRegisterServicesProvider(provider: id, name: NSString);
}
unsafe extern "C" {
    pub fn NSUnregisterServicesProvider(name: NSString);
}
unsafe extern "C" {
    pub static mut NSApplicationDidBecomeActiveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationDidHideNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationDidFinishLaunchingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationDidResignActiveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationDidUnhideNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationDidUpdateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillBecomeActiveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillHideNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillFinishLaunchingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillResignActiveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillUnhideNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillUpdateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationWillTerminateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationDidChangeScreenParametersNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationProtectedDataWillBecomeUnavailableNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationProtectedDataDidBecomeAvailableNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationShouldBeginSuppressingHighDynamicRangeContentNotification:
        NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSApplicationShouldEndSuppressingHighDynamicRangeContentNotification:
        NSNotificationName;
}
unsafe extern "C" {
    pub static NSApplicationLaunchIsDefaultLaunchKey: NSString;
}
unsafe extern "C" {
    pub static NSApplicationLaunchUserNotificationKey: NSString;
}
unsafe extern "C" {
    pub static NSApplicationLaunchRemoteNotificationKey: NSString;
}
unsafe extern "C" {
    pub static NSApplicationDidChangeOcclusionStateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSColorListDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSSystemColorsDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSContextHelpModeDidActivateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSContextHelpModeDidDeactivateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSControlTextDidBeginEditingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSControlTextDidEndEditingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSControlTextDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierFixedSpaceSmall: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierFixedSpaceLarge: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierFlexibleSpace: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierOtherItemsProxy: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierCandidateList: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSPopoverCloseReasonKey: NSString;
}
unsafe extern "C" {
    pub static NSPopoverCloseReasonStandard: NSPopoverCloseReasonValue;
}
unsafe extern "C" {
    pub static NSPopoverCloseReasonDetachToWindow: NSPopoverCloseReasonValue;
}
unsafe extern "C" {
    pub static NSPopoverWillShowNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSPopoverDidShowNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSPopoverWillCloseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSPopoverDidCloseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSCollectionElementKindInterItemGapIndicator:
        NSCollectionViewSupplementaryElementKind;
}
unsafe extern "C" {
    pub static NSCollectionElementKindSectionHeader: NSCollectionViewSupplementaryElementKind;
}
unsafe extern "C" {
    pub static NSCollectionElementKindSectionFooter: NSCollectionViewSupplementaryElementKind;
}
unsafe extern "C" {
    pub static NSDirectionalEdgeInsetsZero: NSDirectionalEdgeInsets;
}
unsafe extern "C" {
    pub static mut NSFontVariationAttribute: NSFontDescriptorAttributeName;
}
unsafe extern "C" {
    pub static mut NSFontCharacterSetAttribute: NSFontDescriptorAttributeName;
}
unsafe extern "C" {
    pub static mut NSFontCascadeListAttribute: NSFontDescriptorAttributeName;
}
unsafe extern "C" {
    pub static mut NSFontFixedAdvanceAttribute: NSFontDescriptorAttributeName;
}
unsafe extern "C" {
    pub static mut NSFontFeatureSettingsAttribute: NSFontDescriptorAttributeName;
}
unsafe extern "C" {
    pub static mut NSFontWeightTrait: NSFontDescriptorTraitKey;
}
unsafe extern "C" {
    pub static mut NSFontWidthTrait: NSFontDescriptorTraitKey;
}
unsafe extern "C" {
    pub static mut NSFontSlantTrait: NSFontDescriptorTraitKey;
}
unsafe extern "C" {
    pub static mut NSFontVariationAxisIdentifierKey: NSFontDescriptorVariationKey;
}
unsafe extern "C" {
    pub static mut NSFontVariationAxisMinimumValueKey: NSFontDescriptorVariationKey;
}
unsafe extern "C" {
    pub static mut NSFontVariationAxisMaximumValueKey: NSFontDescriptorVariationKey;
}
unsafe extern "C" {
    pub static mut NSFontVariationAxisDefaultValueKey: NSFontDescriptorVariationKey;
}
unsafe extern "C" {
    pub static mut NSFontVariationAxisNameKey: NSFontDescriptorVariationKey;
}
unsafe extern "C" {
    pub static mut NSFontFeatureTypeIdentifierKey: NSFontDescriptorFeatureKey;
}
unsafe extern "C" {
    pub static mut NSFontFeatureSelectorIdentifierKey: NSFontDescriptorFeatureKey;
}
unsafe extern "C" {
    pub static NSFontWeightUltraLight: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightThin: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightLight: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightRegular: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightMedium: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightSemibold: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightBold: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightHeavy: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWeightBlack: NSFontWeight;
}
unsafe extern "C" {
    pub static NSFontWidthCompressed: NSFontWidth;
}
unsafe extern "C" {
    pub static NSFontWidthCondensed: NSFontWidth;
}
unsafe extern "C" {
    pub static NSFontWidthStandard: NSFontWidth;
}
unsafe extern "C" {
    pub static NSFontWidthExpanded: NSFontWidth;
}
unsafe extern "C" {
    pub static NSFontDescriptorSystemDesignDefault: NSFontDescriptorSystemDesign;
}
unsafe extern "C" {
    pub static NSFontDescriptorSystemDesignSerif: NSFontDescriptorSystemDesign;
}
unsafe extern "C" {
    pub static NSFontDescriptorSystemDesignMonospaced: NSFontDescriptorSystemDesign;
}
unsafe extern "C" {
    pub static NSFontDescriptorSystemDesignRounded: NSFontDescriptorSystemDesign;
}
unsafe extern "C" {
    pub static NSFontTextStyleLargeTitle: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleTitle1: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleTitle2: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleTitle3: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleHeadline: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleSubheadline: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleBody: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleCallout: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleFootnote: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleCaption1: NSFontTextStyle;
}
unsafe extern "C" {
    pub static NSFontTextStyleCaption2: NSFontTextStyle;
}
unsafe extern "C" {
    pub static mut NSFontColorAttribute: NSString;
}
unsafe extern "C" {
    pub static NSFontCollectionIncludeDisabledFontsOption: NSFontCollectionMatchingOptionKey;
}
unsafe extern "C" {
    pub static NSFontCollectionRemoveDuplicatesOption: NSFontCollectionMatchingOptionKey;
}
unsafe extern "C" {
    pub static NSFontCollectionDisallowAutoActivationOption: NSFontCollectionMatchingOptionKey;
}
unsafe extern "C" {
    pub static NSFontCollectionDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSFontCollectionActionKey: NSFontCollectionUserInfoKey;
}
unsafe extern "C" {
    pub static NSFontCollectionNameKey: NSFontCollectionUserInfoKey;
}
unsafe extern "C" {
    pub static NSFontCollectionOldNameKey: NSFontCollectionUserInfoKey;
}
unsafe extern "C" {
    pub static NSFontCollectionVisibilityKey: NSFontCollectionUserInfoKey;
}
unsafe extern "C" {
    pub static NSFontCollectionWasShown: NSFontCollectionActionTypeKey;
}
unsafe extern "C" {
    pub static NSFontCollectionWasHidden: NSFontCollectionActionTypeKey;
}
unsafe extern "C" {
    pub static NSFontCollectionWasRenamed: NSFontCollectionActionTypeKey;
}
unsafe extern "C" {
    pub static NSFontCollectionAllFonts: NSFontCollectionName;
}
unsafe extern "C" {
    pub static NSFontCollectionUser: NSFontCollectionName;
}
unsafe extern "C" {
    pub static NSFontCollectionFavorites: NSFontCollectionName;
}
unsafe extern "C" {
    pub static NSFontCollectionRecentlyUsed: NSFontCollectionName;
}
unsafe extern "C" {
    pub static mut NSWindowDidBecomeKeyNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidBecomeMainNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidChangeScreenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidDeminiaturizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidExposeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidMiniaturizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidMoveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidResignKeyNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidResignMainNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidResizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidUpdateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowWillCloseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowWillMiniaturizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowWillMoveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowWillBeginSheetNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSWindowDidEndSheetNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidChangeBackingPropertiesNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSBackingPropertyOldScaleFactorKey: NSString;
}
unsafe extern "C" {
    pub static NSBackingPropertyOldColorSpaceKey: NSString;
}
unsafe extern "C" {
    pub static mut NSWindowDidChangeScreenProfileNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowWillStartLiveResizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidEndLiveResizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowWillEnterFullScreenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidEnterFullScreenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowWillExitFullScreenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidExitFullScreenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowWillEnterVersionBrowserNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidEnterVersionBrowserNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowWillExitVersionBrowserNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidExitVersionBrowserNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSWindowDidChangeOcclusionStateNotification: NSNotificationName;
}
unsafe extern "C" {
    pub fn NSRunAlertPanelRelativeToWindow(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        docWindow: NSWindow,
        ...
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSRunInformationalAlertPanelRelativeToWindow(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        docWindow: NSWindow,
        ...
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSRunCriticalAlertPanelRelativeToWindow(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        docWindow: NSWindow,
        ...
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSRunAlertPanel(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        ...
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSRunInformationalAlertPanel(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        ...
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSRunCriticalAlertPanel(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        ...
    ) -> NSInteger;
}
unsafe extern "C" {
    pub fn NSBeginAlertSheet(
        title: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        docWindow: NSWindow,
        modalDelegate: id,
        didEndSelector: objc2::runtime::Sel,
        didDismissSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
        msgFormat: NSString,
        ...
    );
}
unsafe extern "C" {
    pub fn NSBeginInformationalAlertSheet(
        title: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        docWindow: NSWindow,
        modalDelegate: id,
        didEndSelector: objc2::runtime::Sel,
        didDismissSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
        msgFormat: NSString,
        ...
    );
}
unsafe extern "C" {
    pub fn NSBeginCriticalAlertSheet(
        title: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        docWindow: NSWindow,
        modalDelegate: id,
        didEndSelector: objc2::runtime::Sel,
        didDismissSelector: objc2::runtime::Sel,
        contextInfo: *mut ::std::os::raw::c_void,
        msgFormat: NSString,
        ...
    );
}
unsafe extern "C" {
    pub fn NSGetAlertPanel(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        ...
    ) -> id;
}
unsafe extern "C" {
    pub fn NSGetInformationalAlertPanel(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        ...
    ) -> id;
}
unsafe extern "C" {
    pub fn NSGetCriticalAlertPanel(
        title: NSString,
        msgFormat: NSString,
        defaultButton: NSString,
        alternateButton: NSString,
        otherButton: NSString,
        ...
    ) -> id;
}
unsafe extern "C" {
    pub fn NSReleaseAlertPanel(panel: id);
}
unsafe extern "C" {
    pub static mut NSImageRepRegistryDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSImageCompressionMethod: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageCompressionFactor: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageDitherTransparency: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageRGBColorTable: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageInterlaced: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageColorSyncProfileData: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageFrameCount: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageCurrentFrame: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageCurrentFrameDuration: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageLoopCount: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageGamma: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageProgressive: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageEXIFData: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageIPTCData: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSImageFallbackBackgroundColor: NSBitmapImageRepPropertyKey;
}
unsafe extern "C" {
    pub static mut NSBrowserColumnConfigurationDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSColorPanelColorDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSDraggingImageComponentIconKey: NSDraggingImageComponentKey;
}
unsafe extern "C" {
    pub static NSDraggingImageComponentLabelKey: NSDraggingImageComponentKey;
}
unsafe extern "C" {
    pub static NSViewNoInstrinsicMetric: CGFloat;
}
unsafe extern "C" {
    pub static NSViewNoIntrinsicMetric: CGFloat;
}
unsafe extern "C" {
    pub static NSImageHintCTM: NSImageHintKey;
}
unsafe extern "C" {
    pub static NSImageHintInterpolation: NSImageHintKey;
}
unsafe extern "C" {
    pub static NSImageHintUserInterfaceLayoutDirection: NSImageHintKey;
}
unsafe extern "C" {
    pub static NSImageNameAddTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameBluetoothTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameBonjour: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameBookmarksTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameCaution: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameComputer: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameEnterFullScreenTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameExitFullScreenTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameFolder: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameFolderBurnable: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameFolderSmart: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameFollowLinkFreestandingTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameHomeTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameIChatTheaterTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameLockLockedTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameLockUnlockedTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameNetwork: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNamePathTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameQuickLookTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameRefreshFreestandingTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameRefreshTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameRemoveTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameRevealFreestandingTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameShareTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameSlideshowTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameStatusAvailable: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameStatusNone: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameStatusPartiallyAvailable: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameStatusUnavailable: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameStopProgressFreestandingTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameStopProgressTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTrashEmpty: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTrashFull: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameActionTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameSmartBadgeTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameIconViewTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameListViewTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameColumnViewTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameFlowViewTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameInvalidDataFreestandingTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameGoForwardTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameGoBackTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameGoRightTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameGoLeftTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameRightFacingTriangleTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameLeftFacingTriangleTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameDotMac: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameMobileMe: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameMultipleDocuments: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameUserAccounts: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNamePreferencesGeneral: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameAdvanced: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameInfo: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameFontPanel: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameColorPanel: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameUser: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameUserGroup: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameEveryone: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameUserGuest: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameMenuOnStateTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameMenuMixedStateTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameApplicationIcon: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAddDetailTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAddTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAlarmTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioInputMuteTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioInputTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioOutputMuteTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioOutputVolumeHighTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioOutputVolumeLowTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioOutputVolumeMediumTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarAudioOutputVolumeOffTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarBookmarksTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarColorPickerFill: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarColorPickerFont: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarColorPickerStroke: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarCommunicationAudioTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarCommunicationVideoTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarComposeTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarDeleteTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarDownloadTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarEnterFullScreenTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarExitFullScreenTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarFastForwardTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarFolderCopyToTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarFolderMoveToTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarFolderTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarGetInfoTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarGoBackTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarGoDownTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarGoForwardTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarGoUpTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarHistoryTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarIconViewTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarListViewTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarMailTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarNewFolderTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarNewMessageTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarOpenInBrowserTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarPauseTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarPlayPauseTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarPlayTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarQuickLookTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRecordStartTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRecordStopTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRefreshTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRemoveTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRewindTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRotateLeftTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarRotateRightTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSearchTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarShareTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSidebarTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipAhead15SecondsTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipAhead30SecondsTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipAheadTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipBack15SecondsTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipBack30SecondsTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipBackTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipToEndTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSkipToStartTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarSlideshowTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTagIconTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextBoldTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextBoxTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextCenterAlignTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextItalicTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextJustifiedAlignTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextLeftAlignTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextListTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextRightAlignTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextStrikethroughTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarTextUnderlineTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarUserAddTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarUserGroupTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarUserTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarVolumeDownTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarVolumeUpTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSImageNameTouchBarPlayheadTemplate: NSImageName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameComposeEmail: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameComposeMessage: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameSendViaAirDrop: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameAddToSafariReadingList: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameAddToIPhoto: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameAddToAperture: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameUseAsDesktopPicture: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostOnFacebook: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostOnTwitter: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostOnSinaWeibo: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostOnTencentWeibo: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostOnLinkedIn: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameUseAsTwitterProfileImage: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameUseAsFacebookProfileImage: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameUseAsLinkedInProfileImage: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostImageOnFlickr: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostVideoOnVimeo: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostVideoOnYouku: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNamePostVideoOnTudou: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSharingServiceNameCloudSharing: NSSharingServiceName;
}
unsafe extern "C" {
    pub static NSSliderAccessoryWidthDefault: NSSliderAccessoryWidth;
}
unsafe extern "C" {
    pub static NSSliderAccessoryWidthWide: NSSliderAccessoryWidth;
}
unsafe extern "C" {
    pub static NSVoiceName: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceIdentifier: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceAge: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceGender: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceDemoText: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceLocaleIdentifier: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceSupportedCharacters: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSVoiceIndividuallySpokenCharacters: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSSpeechDictionaryLocaleIdentifier: NSSpeechDictionaryKey;
}
unsafe extern "C" {
    pub static NSSpeechDictionaryModificationDate: NSSpeechDictionaryKey;
}
unsafe extern "C" {
    pub static NSSpeechDictionaryPronunciations: NSSpeechDictionaryKey;
}
unsafe extern "C" {
    pub static NSSpeechDictionaryAbbreviations: NSSpeechDictionaryKey;
}
unsafe extern "C" {
    pub static NSSpeechDictionaryEntrySpelling: NSSpeechDictionaryKey;
}
unsafe extern "C" {
    pub static NSSpeechDictionaryEntryPhonemes: NSSpeechDictionaryKey;
}
unsafe extern "C" {
    pub static NSVoiceGenderNeuter: NSVoiceGenderName;
}
unsafe extern "C" {
    pub static NSVoiceGenderMale: NSVoiceGenderName;
}
unsafe extern "C" {
    pub static NSVoiceGenderFemale: NSVoiceGenderName;
}
unsafe extern "C" {
    pub static NSVoiceGenderNeutral: NSVoiceGenderName;
}
unsafe extern "C" {
    pub static NSSpeechStatusProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechErrorsProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechInputModeProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechCharacterModeProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechNumberModeProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechRateProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechPitchBaseProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechPitchModProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechVolumeProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechSynthesizerInfoProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechRecentSyncProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechPhonemeSymbolsProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechCurrentVoiceProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechCommandDelimiterProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechResetProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSSpeechOutputToFileURLProperty: NSSpeechPropertyKey;
}
unsafe extern "C" {
    pub static NSVoiceLanguage: NSVoiceAttributeKey;
}
unsafe extern "C" {
    pub static NSSpeechModeText: NSSpeechMode;
}
unsafe extern "C" {
    pub static NSSpeechModePhoneme: NSSpeechMode;
}
unsafe extern "C" {
    pub static NSSpeechModeNormal: NSSpeechMode;
}
unsafe extern "C" {
    pub static NSSpeechModeLiteral: NSSpeechMode;
}
unsafe extern "C" {
    pub static NSSpeechStatusOutputBusy: NSSpeechStatusKey;
}
unsafe extern "C" {
    pub static NSSpeechStatusOutputPaused: NSSpeechStatusKey;
}
unsafe extern "C" {
    pub static NSSpeechStatusNumberOfCharactersLeft: NSSpeechStatusKey;
}
unsafe extern "C" {
    pub static NSSpeechStatusPhonemeCode: NSSpeechStatusKey;
}
unsafe extern "C" {
    pub static NSSpeechErrorCount: NSSpeechErrorKey;
}
unsafe extern "C" {
    pub static NSSpeechErrorOldestCode: NSSpeechErrorKey;
}
unsafe extern "C" {
    pub static NSSpeechErrorOldestCharacterOffset: NSSpeechErrorKey;
}
unsafe extern "C" {
    pub static NSSpeechErrorNewestCode: NSSpeechErrorKey;
}
unsafe extern "C" {
    pub static NSSpeechErrorNewestCharacterOffset: NSSpeechErrorKey;
}
unsafe extern "C" {
    pub static NSSpeechSynthesizerInfoIdentifier: NSSpeechSynthesizerInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechSynthesizerInfoVersion: NSSpeechSynthesizerInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechPhonemeInfoOpcode: NSSpeechPhonemeInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechPhonemeInfoSymbol: NSSpeechPhonemeInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechPhonemeInfoExample: NSSpeechPhonemeInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechPhonemeInfoHiliteStart: NSSpeechPhonemeInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechPhonemeInfoHiliteEnd: NSSpeechPhonemeInfoKey;
}
unsafe extern "C" {
    pub static NSSpeechCommandPrefix: NSSpeechCommandDelimiterKey;
}
unsafe extern "C" {
    pub static NSSpeechCommandSuffix: NSSpeechCommandDelimiterKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingOrthographyKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingQuotesKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingReplacementsKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingReferenceDateKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingReferenceTimeZoneKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingDocumentURLKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingDocumentTitleKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingDocumentAuthorKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingRegularExpressionsKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingSelectedRangeKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static mut NSTextCheckingGenerateInlinePredictionsKey: NSTextCheckingOptionKey;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticSpellingCorrectionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticTextReplacementNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticQuoteSubstitutionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticDashSubstitutionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticCapitalizationNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticPeriodSubstitutionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticTextCompletionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSpellCheckerDidChangeAutomaticInlinePredictionNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSSplitViewWillResizeSubviewsNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSSplitViewDidResizeSubviewsNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSSplitViewItemUnspecifiedDimension: CGFloat;
}
unsafe extern "C" {
    pub static NSSplitViewControllerAutomaticDimension: CGFloat;
}
unsafe extern "C" {
    pub static mut NSPopUpButtonCellWillPopUpNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSPopUpButtonWillPopUpNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSPrintOperationExistsException: NSExceptionName;
}
unsafe extern "C" {
    pub static NSPrintPhotoJobStyleHint: NSPrintPanelJobStyleHint;
}
unsafe extern "C" {
    pub static NSPrintAllPresetsJobStyleHint: NSPrintPanelJobStyleHint;
}
unsafe extern "C" {
    pub static NSPrintNoPresetsJobStyleHint: NSPrintPanelJobStyleHint;
}
unsafe extern "C" {
    pub static NSPrintPanelAccessorySummaryItemNameKey: NSPrintPanelAccessorySummaryKey;
}
unsafe extern "C" {
    pub static NSPrintPanelAccessorySummaryItemDescriptionKey: NSPrintPanelAccessorySummaryKey;
}
unsafe extern "C" {
    pub static NSScreenColorSpaceDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSPreferredScrollerStyleDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSTextFinderCaseInsensitiveKey: NSPasteboardTypeTextFinderOptionKey;
}
unsafe extern "C" {
    pub static NSTextFinderMatchingTypeKey: NSPasteboardTypeTextFinderOptionKey;
}
unsafe extern "C" {
    pub static NSScrollViewWillStartLiveMagnifyNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSScrollViewDidEndLiveMagnifyNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSScrollViewWillStartLiveScrollNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSScrollViewDidLiveScrollNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSScrollViewDidEndLiveScrollNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSGridViewSizeForContent: CGFloat;
}
unsafe extern "C" {
    pub static NSTextContentTypeUsername: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypePassword: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeOneTimeCode: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeNewPassword: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeNamePrefix: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeGivenName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeMiddleName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeFamilyName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeNameSuffix: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeNickname: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeJobTitle: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeOrganizationName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeLocation: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeFullStreetAddress: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeStreetAddressLine1: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeStreetAddressLine2: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeAddressCity: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeAddressState: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeAddressCityAndState: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeSublocality: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCountryName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypePostalCode: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeTelephoneNumber: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeEmailAddress: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeURL: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardNumber: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardGivenName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardMiddleName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardFamilyName: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardSecurityCode: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardExpiration: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardExpirationMonth: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardExpirationYear: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeCreditCardType: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeShipmentTrackingNumber: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeFlightNumber: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeDateTime: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeBirthdate: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeBirthdateDay: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeBirthdateMonth: NSTextContentType;
}
unsafe extern "C" {
    pub static NSTextContentTypeBirthdateYear: NSTextContentType;
}
unsafe extern "C" {
    pub static mut NSUsesScreenFontsDocumentAttribute: NSAttributedStringKey;
}
unsafe extern "C" {
    pub static NSToolbarItemKey: NSToolbarUserInfoKey;
}
unsafe extern "C" {
    pub static NSToolbarNewIndexKey: NSToolbarUserInfoKey;
}
unsafe extern "C" {
    pub static mut NSToolbarWillAddItemNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSToolbarDidRemoveItemNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSToolbarSpaceItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarFlexibleSpaceItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarShowColorsItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarShowFontsItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarPrintItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarToggleSidebarItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarToggleInspectorItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarCloudSharingItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarWritingToolsItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarSidebarTrackingSeparatorItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarInspectorTrackingSeparatorItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarSeparatorItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSToolbarCustomizeToolbarItemIdentifier: NSToolbarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSComboBoxWillPopUpNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSComboBoxWillDismissNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSComboBoxSelectionDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSComboBoxSelectionIsChangingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierCharacterPicker: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierTextColorPicker: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierTextStyle: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierTextAlignment: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierTextList: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static NSTouchBarItemIdentifierTextFormat: NSTouchBarItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSTextViewWillSwitchToNSLayoutManagerNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTextViewDidSwitchToNSLayoutManagerNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSFindPanelSearchOptionsPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSFindPanelCaseInsensitiveSearch: NSPasteboardTypeFindPanelSearchOptionKey;
}
unsafe extern "C" {
    pub static mut NSFindPanelSubstringMatch: NSPasteboardTypeFindPanelSearchOptionKey;
}
unsafe extern "C" {
    pub static mut NSTableViewSelectionDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTableViewColumnDidMoveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTableViewColumnDidResizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTableViewSelectionIsChangingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSTableViewRowViewKey: NSUserInterfaceItemIdentifier;
}
unsafe extern "C" {
    pub static NSOutlineViewDisclosureButtonKey: NSUserInterfaceItemIdentifier;
}
unsafe extern "C" {
    pub static NSOutlineViewShowHideButtonKey: NSUserInterfaceItemIdentifier;
}
unsafe extern "C" {
    pub static mut NSOutlineViewSelectionDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewColumnDidMoveNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewColumnDidResizeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewSelectionIsChangingNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewItemWillExpandNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewItemDidExpandNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewItemWillCollapseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSOutlineViewItemDidCollapseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSRulerViewUnitInches: NSRulerViewUnitName;
}
unsafe extern "C" {
    pub static NSRulerViewUnitCentimeters: NSRulerViewUnitName;
}
unsafe extern "C" {
    pub static NSRulerViewUnitPoints: NSRulerViewUnitName;
}
unsafe extern "C" {
    pub static NSRulerViewUnitPicas: NSRulerViewUnitName;
}
unsafe extern "C" {
    pub fn NSInterfaceStyleForKey(key: NSString, responder: NSResponder) -> NSInterfaceStyle;
}
unsafe extern "C" {
    pub static mut NSInterfaceStyleDefault: NSString;
}
unsafe extern "C" {
    pub static NSSoundPboardType: NSPasteboardType;
}
unsafe extern "C" {
    pub static mut NSDrawerWillOpenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSDrawerDidOpenNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSDrawerWillCloseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSDrawerDidCloseNotification: NSNotificationName;
}
unsafe extern "C" {
    pub fn NSOpenGLSetOption(pname: NSOpenGLGlobalOption, param: GLint);
}
unsafe extern "C" {
    pub fn NSOpenGLGetOption(pname: NSOpenGLGlobalOption, param: *mut GLint);
}
unsafe extern "C" {
    pub fn NSOpenGLGetVersion(major: *mut GLint, minor: *mut GLint);
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateLeftExpression: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateRightExpression: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateComparisonModifier: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateOptions: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateOperatorType: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateCustomSelector: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorPredicateCompoundType: NSRuleEditorPredicatePartKey;
}
unsafe extern "C" {
    pub static NSRuleEditorRowsDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static mut NSTextInputContextKeyboardSelectionDidChangeNotification: NSNotificationName;
}
unsafe extern "C" {
    pub static NSApplicationDidFinishRestoringWindowsNotification: NSNotificationName;
}

unsafe impl objc2::encode::RefEncode for NSGraphicsContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGraphicsContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAccessibilityElement {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAccessibilityElement {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWorkspace {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWorkspace {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWorkspaceOpenConfiguration {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWorkspaceOpenConfiguration {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWorkspaceAuthorization {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWorkspaceAuthorization {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTouch {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTouch {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSEvent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSEvent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPasteboard {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPasteboard {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSResponder {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSResponder {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSRunningApplication {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSRunningApplication {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSNib {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSNib {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAnimation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAnimation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSViewAnimation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSViewAnimation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAppearance {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAppearance {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSText {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSText {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextTab {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextTab {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSParagraphStyle {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSParagraphStyle {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMutableParagraphStyle {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMutableParagraphStyle {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMenuItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMenuItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMenu {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMenu {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPrinter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPrinter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPrintInfo {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPrintInfo {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBindingSelectionMarker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBindingSelectionMarker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPreviewRepresentingActivityItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPreviewRepresentingActivityItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDocument {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDocument {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for _NSModalSession {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for _NSModalSession {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Struct("_NSModalSession", &[]);
}
unsafe impl objc2::encode::RefEncode for NSApplication {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSApplication {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorList {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorList {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSActionCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSActionCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSHelpManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSHelpManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAlert {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAlert {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAnimationContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAnimationContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBackgroundExtensionView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBackgroundExtensionView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBox {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBox {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSControl {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSControl {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSButtonCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSButtonCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSUserInterfaceCompressionOptions {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSUserInterfaceCompressionOptions {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSButton {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSButton {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTouchBar {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTouchBar {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCandidateListTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCandidateListTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSClipView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSClipView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPopover {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPopover {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStoryboard {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStoryboard {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStoryboardSegue {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStoryboardSegue {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSViewController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSViewController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewLayoutAttributes {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewLayoutAttributes {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewUpdateItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewUpdateItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewLayoutInvalidationContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewLayoutInvalidationContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewFlowLayoutInvalidationContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewFlowLayoutInvalidationContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewFlowLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewFlowLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDirectionalEdgeInsets {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDirectionalEdgeInsets {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Struct("NSDirectionalEdgeInsets", &[]);
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewCompositionalLayoutConfiguration {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewCompositionalLayoutConfiguration {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewCompositionalLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewCompositionalLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutSection {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutSection {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutGroupCustomItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutGroupCustomItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutGroup {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutGroup {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutDimension {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutDimension {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutSize {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutSize {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutSpacing {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutSpacing {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutEdgeSpacing {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutEdgeSpacing {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutSupplementaryItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutSupplementaryItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutBoundarySupplementaryItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutBoundarySupplementaryItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutDecorationItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutDecorationItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionLayoutAnchor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionLayoutAnchor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewGridLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewGridLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewTransitionLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewTransitionLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorSampler {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorSampler {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDiffableDataSourceSnapshot {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDiffableDataSourceSnapshot {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCollectionViewDiffableDataSource {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCollectionViewDiffableDataSource {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDockTile {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDockTile {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFontDescriptor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFontDescriptor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFont {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFont {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFontAssetRequest {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFontAssetRequest {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFontCollection {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFontCollection {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMutableFontCollection {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMutableFontCollection {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFontManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFontManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWindow {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWindow {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFontPanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFontPanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMatrix {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMatrix {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSForm {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSForm {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFormCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFormCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGlassEffectView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGlassEffectView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGlassEffectContainerView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGlassEffectContainerView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMenuItemBadge {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMenuItemBadge {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorSpace {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorSpace {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBitmapImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBitmapImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBrowser {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBrowser {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBrowserCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBrowserCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCachedImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCachedImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCIImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCIImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorPanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorPanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorPicker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorPicker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorPickerTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorPickerTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSColorWell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSColorWell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCursor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCursor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCustomImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCustomImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSCustomTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSCustomTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDocumentController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDocumentController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDraggingImageComponent {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDraggingImageComponent {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDraggingItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDraggingItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDraggingSession {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDraggingSession {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFilePromiseProvider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFilePromiseProvider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSFilePromiseReceiver {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSFilePromiseReceiver {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSEPSImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSEPSImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGradient {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGradient {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGroupTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGroupTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGestureRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGestureRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSClickGestureRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSClickGestureRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPanGestureRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPanGestureRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPressGestureRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPressGestureRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMagnificationGestureRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMagnificationGestureRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSRotationGestureRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSRotationGestureRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLayoutAnchor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLayoutAnchor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLayoutXAxisAnchor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLayoutXAxisAnchor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLayoutYAxisAnchor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLayoutYAxisAnchor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLayoutDimension {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLayoutDimension {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLayoutConstraint {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLayoutConstraint {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLayoutGuide {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLayoutGuide {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSImage {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSImage {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSImageSymbolConfiguration {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSImageSymbolConfiguration {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSImageCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSImageCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSImageView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSImageView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberSelectionStyle {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberSelectionStyle {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubber {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubber {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberArrangedView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberArrangedView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberSelectionView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberSelectionView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberItemView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberItemView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberTextItemView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberTextItemView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberImageItemView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberImageItemView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberLayoutAttributes {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberLayoutAttributes {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberFlowLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberFlowLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrubberProportionalLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrubberProportionalLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSharingService {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSharingService {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSharingServicePicker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSharingServicePicker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSharingServicePickerTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSharingServicePickerTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSliderAccessory {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSliderAccessory {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSliderAccessoryBehavior {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSliderAccessoryBehavior {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSliderTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSliderTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSpeechRecognizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSpeechRecognizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSpeechSynthesizer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSpeechSynthesizer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSpellChecker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSpellChecker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSplitView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSplitView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSplitViewItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSplitViewItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSplitViewController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSplitViewController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrollEdgeEffectStyle {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrollEdgeEffectStyle {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSplitViewItemAccessoryViewController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSplitViewItemAccessoryViewController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSavePanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSavePanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOpenPanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOpenPanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPageLayout {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPageLayout {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPasteboardItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPasteboardItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPopoverTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPopoverTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMenuItemCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMenuItemCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPopUpButtonCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPopUpButtonCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPopUpButton {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPopUpButton {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPrintOperation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPrintOperation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPrintPanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPrintPanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPDFInfo {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPDFInfo {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPDFPanel {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPDFPanel {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMediaLibraryBrowserController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMediaLibraryBrowserController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScreen {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScreen {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScroller {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScroller {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextFinder {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextFinder {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSScrollView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSScrollView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSegmentedControl {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSegmentedControl {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSegmentedCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSegmentedCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSharingCollaborationModeRestriction {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSharingCollaborationModeRestriction {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSliderCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSliderCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSlider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSlider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStackView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStackView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSwitch {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSwitch {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGridView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGridView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGridRow {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGridRow {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGridColumn {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGridColumn {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGridCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGridCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextCheckingController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextCheckingController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextFieldCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextFieldCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextField {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextField {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextInsertionIndicator {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextInsertionIndicator {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextContainer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextContainer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGlyphGenerator {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGlyphGenerator {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTokenFieldCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTokenFieldCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTokenField {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTokenField {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTrackingArea {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTrackingArea {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSToolbar {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSToolbar {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSToolbarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSToolbarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTrackingSeparatorToolbarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTrackingSeparatorToolbarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSViewLayoutRegion {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSViewLayoutRegion {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWindowTab {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWindowTab {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWindowTabGroup {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWindowTabGroup {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWindowController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWindowController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSComboBox {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSComboBox {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSComboBoxCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSComboBoxCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSComboButton {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSComboButton {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSInputManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSInputManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextAttachmentViewProvider {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextAttachmentViewProvider {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextAttachmentCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextAttachmentCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableCellView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableCellView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableColumn {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableColumn {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableHeaderCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableHeaderCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableHeaderView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableHeaderView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableRowView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableRowView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableViewDiffableDataSource {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableViewDiffableDataSource {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTableViewRowAction {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTableViewRowAction {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOutlineView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOutlineView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSInputServer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSInputServer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStringDrawingContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStringDrawingContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSRulerMarker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSRulerMarker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSRulerView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSRulerView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSecureTextField {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSecureTextField {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSecureTextFieldCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSecureTextFieldCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSProgressIndicator {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSProgressIndicator {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTabView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTabView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTabViewController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTabViewController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTabViewItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTabViewItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSBezierPath {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSBezierPath {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPICTImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPICTImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStatusBar {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStatusBar {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStatusBarButton {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStatusBarButton {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStatusItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStatusItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSound {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSound {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMovie {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMovie {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPDFImageRep {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPDFImageRep {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDrawer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDrawer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOpenGLPixelFormat {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOpenGLPixelFormat {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOpenGLPixelBuffer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOpenGLPixelBuffer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOpenGLContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOpenGLContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOpenGLLayer {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOpenGLLayer {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSOpenGLView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSOpenGLView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSToolbarItemGroup {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSToolbarItemGroup {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSMenuToolbarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSMenuToolbarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSharingServicePickerToolbarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSharingServicePickerToolbarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStepper {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStepper {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStepperCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStepperCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSGlyphInfo {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSGlyphInfo {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTypesetter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTypesetter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSATSTypesetter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSATSTypesetter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSearchField {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSearchField {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSearchFieldCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSearchFieldCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSObjectController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSObjectController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSArrayController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSArrayController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDictionaryControllerKeyValuePair {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDictionaryControllerKeyValuePair {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDictionaryController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDictionaryController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTreeNode {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTreeNode {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTreeController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTreeController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSUserDefaultsController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSUserDefaultsController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextList {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextList {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextBlock {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextBlock {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextTableBlock {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextTableBlock {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextTable {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextTable {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDatePickerCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDatePickerCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSDatePicker {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSDatePicker {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLevelIndicatorCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLevelIndicatorCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSLevelIndicator {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSLevelIndicator {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPersistentDocument {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPersistentDocument {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSRuleEditor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSRuleEditor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPredicateEditor {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPredicateEditor {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPredicateEditorRowTemplate {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPredicateEditorRowTemplate {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPathCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPathCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPathControl {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPathControl {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPathComponentCell {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPathComponentCell {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPathControlItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPathControlItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPageController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPageController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextInputContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextInputContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextAlternatives {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextAlternatives {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSVisualEffectView {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSVisualEffectView {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSItemBadge {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSItemBadge {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTitlebarAccessoryViewController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTitlebarAccessoryViewController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSHapticFeedbackManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSHapticFeedbackManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAlignmentFeedbackFilter {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAlignmentFeedbackFilter {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPressureConfiguration {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPressureConfiguration {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSButtonTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSButtonTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSPickerTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSPickerTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSStepperTouchBarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSStepperTouchBarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTintConfiguration {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTintConfiguration {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSSearchToolbarItem {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSSearchToolbarItem {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextRange {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextRange {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextSelection {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextSelection {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextSelectionNavigation {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextSelectionNavigation {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextContentManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextContentManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextContentStorage {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextContentStorage {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextElement {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextElement {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextParagraph {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextParagraph {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextListElement {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextListElement {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextLayoutFragment {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextLayoutFragment {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextLayoutManager {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextLayoutManager {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextLineFragment {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextLineFragment {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextViewportLayoutController {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextViewportLayoutController {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSAdaptiveImageGlyph {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSAdaptiveImageGlyph {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWritingToolsCoordinatorAnimationParameters {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWritingToolsCoordinatorAnimationParameters {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWritingToolsCoordinatorContext {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWritingToolsCoordinatorContext {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSWritingToolsCoordinator {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSWritingToolsCoordinator {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSTextPreview {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSTextPreview {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSNibConnector {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSNibConnector {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSNibControlConnector {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSNibControlConnector {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
unsafe impl objc2::encode::RefEncode for NSNibOutletConnector {
    const ENCODING_REF: objc2::encode::Encoding = objc2::encode::Encoding::Pointer(&<Self as objc2::encode::Encode>::ENCODING);
}
unsafe impl objc2::encode::Encode for NSNibOutletConnector {
    const ENCODING: objc2::encode::Encoding = objc2::encode::Encoding::Object;
}
