use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSMenuItem;
);
#[cfg(feature = "NSAccessibilityProtocols")]
extern_conformance!(
unsafe impl NSAccessibility for NSMenuItem {}
);
#[cfg(feature = "NSAccessibilityProtocols")]
extern_conformance!(
unsafe impl NSAccessibilityElementProtocol for NSMenuItem {}
);
extern_conformance!(
unsafe impl NSCoding for NSMenuItem {}
);
extern_conformance!(
unsafe impl NSCopying for NSMenuItem {}
);
unsafe impl CopyingHelper for NSMenuItem {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for NSMenuItem {}
);
#[cfg(feature = "NSUserInterfaceItemIdentification")]
extern_conformance!(
unsafe impl NSUserInterfaceItemIdentification for NSMenuItem {}
);
#[cfg(feature = "NSUserInterfaceValidation")]
extern_conformance!(
unsafe impl NSValidatedUserInterfaceItem for NSMenuItem {}
);
impl NSMenuItem {
extern_methods!(
#[unsafe(method(usesUserKeyEquivalents))]
#[unsafe(method_family = none)]
pub fn usesUserKeyEquivalents(mtm: MainThreadMarker) -> bool;
#[unsafe(method(setUsesUserKeyEquivalents:))]
#[unsafe(method_family = none)]
pub fn setUsesUserKeyEquivalents(uses_user_key_equivalents: bool, mtm: MainThreadMarker);
#[unsafe(method(separatorItem))]
#[unsafe(method_family = none)]
pub fn separatorItem(mtm: MainThreadMarker) -> Retained<NSMenuItem>;
#[unsafe(method(sectionHeaderWithTitle:))]
#[unsafe(method_family = none)]
pub fn sectionHeaderWithTitle(title: &NSString, mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(writingToolsItems))]
#[unsafe(method_family = none)]
pub fn writingToolsItems(mtm: MainThreadMarker) -> Retained<NSArray<NSMenuItem>>;
#[unsafe(method(initWithTitle:action:keyEquivalent:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithTitle_action_keyEquivalent(
this: Allocated<Self>,
string: &NSString,
selector: Option<Sel>,
char_code: &NSString,
) -> Retained<Self>;
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(this: Allocated<Self>, coder: &NSCoder) -> Retained<Self>;
#[cfg(feature = "NSMenu")]
#[unsafe(method(menu))]
#[unsafe(method_family = none)]
pub unsafe fn menu(&self) -> Option<Retained<NSMenu>>;
#[cfg(feature = "NSMenu")]
#[unsafe(method(setMenu:))]
#[unsafe(method_family = none)]
pub unsafe fn setMenu(&self, menu: Option<&NSMenu>);
#[unsafe(method(hasSubmenu))]
#[unsafe(method_family = none)]
pub fn hasSubmenu(&self) -> bool;
#[cfg(feature = "NSMenu")]
#[unsafe(method(submenu))]
#[unsafe(method_family = none)]
pub fn submenu(&self) -> Option<Retained<NSMenu>>;
#[cfg(feature = "NSMenu")]
#[unsafe(method(setSubmenu:))]
#[unsafe(method_family = none)]
pub fn setSubmenu(&self, submenu: Option<&NSMenu>);
#[unsafe(method(parentItem))]
#[unsafe(method_family = none)]
pub unsafe fn parentItem(&self) -> Option<Retained<NSMenuItem>>;
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub fn title(&self) -> Retained<NSString>;
#[unsafe(method(setTitle:))]
#[unsafe(method_family = none)]
pub fn setTitle(&self, title: &NSString);
#[unsafe(method(attributedTitle))]
#[unsafe(method_family = none)]
pub fn attributedTitle(&self) -> Option<Retained<NSAttributedString>>;
#[unsafe(method(setAttributedTitle:))]
#[unsafe(method_family = none)]
pub fn setAttributedTitle(&self, attributed_title: Option<&NSAttributedString>);
#[unsafe(method(subtitle))]
#[unsafe(method_family = none)]
pub fn subtitle(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setSubtitle:))]
#[unsafe(method_family = none)]
pub fn setSubtitle(&self, subtitle: Option<&NSString>);
#[unsafe(method(isSeparatorItem))]
#[unsafe(method_family = none)]
pub fn isSeparatorItem(&self) -> bool;
#[unsafe(method(isSectionHeader))]
#[unsafe(method_family = none)]
pub fn isSectionHeader(&self) -> bool;
#[unsafe(method(keyEquivalent))]
#[unsafe(method_family = none)]
pub fn keyEquivalent(&self) -> Retained<NSString>;
#[unsafe(method(setKeyEquivalent:))]
#[unsafe(method_family = none)]
pub fn setKeyEquivalent(&self, key_equivalent: &NSString);
#[cfg(feature = "NSEvent")]
#[unsafe(method(keyEquivalentModifierMask))]
#[unsafe(method_family = none)]
pub fn keyEquivalentModifierMask(&self) -> NSEventModifierFlags;
#[cfg(feature = "NSEvent")]
#[unsafe(method(setKeyEquivalentModifierMask:))]
#[unsafe(method_family = none)]
pub fn setKeyEquivalentModifierMask(
&self,
key_equivalent_modifier_mask: NSEventModifierFlags,
);
#[unsafe(method(userKeyEquivalent))]
#[unsafe(method_family = none)]
pub fn userKeyEquivalent(&self) -> Retained<NSString>;
#[unsafe(method(allowsKeyEquivalentWhenHidden))]
#[unsafe(method_family = none)]
pub fn allowsKeyEquivalentWhenHidden(&self) -> bool;
#[unsafe(method(setAllowsKeyEquivalentWhenHidden:))]
#[unsafe(method_family = none)]
pub fn setAllowsKeyEquivalentWhenHidden(&self, allows_key_equivalent_when_hidden: bool);
#[unsafe(method(allowsAutomaticKeyEquivalentLocalization))]
#[unsafe(method_family = none)]
pub fn allowsAutomaticKeyEquivalentLocalization(&self) -> bool;
#[unsafe(method(setAllowsAutomaticKeyEquivalentLocalization:))]
#[unsafe(method_family = none)]
pub fn setAllowsAutomaticKeyEquivalentLocalization(
&self,
allows_automatic_key_equivalent_localization: bool,
);
#[unsafe(method(allowsAutomaticKeyEquivalentMirroring))]
#[unsafe(method_family = none)]
pub fn allowsAutomaticKeyEquivalentMirroring(&self) -> bool;
#[unsafe(method(setAllowsAutomaticKeyEquivalentMirroring:))]
#[unsafe(method_family = none)]
pub fn setAllowsAutomaticKeyEquivalentMirroring(
&self,
allows_automatic_key_equivalent_mirroring: bool,
);
#[cfg(feature = "NSImage")]
#[unsafe(method(image))]
#[unsafe(method_family = none)]
pub fn image(&self) -> Option<Retained<NSImage>>;
#[cfg(feature = "NSImage")]
#[unsafe(method(setImage:))]
#[unsafe(method_family = none)]
pub fn setImage(&self, image: Option<&NSImage>);
#[cfg(feature = "NSCell")]
#[unsafe(method(state))]
#[unsafe(method_family = none)]
pub fn state(&self) -> NSControlStateValue;
#[cfg(feature = "NSCell")]
#[unsafe(method(setState:))]
#[unsafe(method_family = none)]
pub fn setState(&self, state: NSControlStateValue);
#[cfg(feature = "NSImage")]
#[unsafe(method(onStateImage))]
#[unsafe(method_family = none)]
pub fn onStateImage(&self) -> Option<Retained<NSImage>>;
#[cfg(feature = "NSImage")]
#[unsafe(method(setOnStateImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setOnStateImage(&self, on_state_image: Option<&NSImage>);
#[cfg(feature = "NSImage")]
#[unsafe(method(offStateImage))]
#[unsafe(method_family = none)]
pub fn offStateImage(&self) -> Option<Retained<NSImage>>;
#[cfg(feature = "NSImage")]
#[unsafe(method(setOffStateImage:))]
#[unsafe(method_family = none)]
pub fn setOffStateImage(&self, off_state_image: Option<&NSImage>);
#[cfg(feature = "NSImage")]
#[unsafe(method(mixedStateImage))]
#[unsafe(method_family = none)]
pub fn mixedStateImage(&self) -> Option<Retained<NSImage>>;
#[cfg(feature = "NSImage")]
#[unsafe(method(setMixedStateImage:))]
#[unsafe(method_family = none)]
pub unsafe fn setMixedStateImage(&self, mixed_state_image: Option<&NSImage>);
#[unsafe(method(isEnabled))]
#[unsafe(method_family = none)]
pub fn isEnabled(&self) -> bool;
#[unsafe(method(setEnabled:))]
#[unsafe(method_family = none)]
pub fn setEnabled(&self, enabled: bool);
#[unsafe(method(isAlternate))]
#[unsafe(method_family = none)]
pub fn isAlternate(&self) -> bool;
#[unsafe(method(setAlternate:))]
#[unsafe(method_family = none)]
pub fn setAlternate(&self, alternate: bool);
#[unsafe(method(indentationLevel))]
#[unsafe(method_family = none)]
pub fn indentationLevel(&self) -> NSInteger;
#[unsafe(method(setIndentationLevel:))]
#[unsafe(method_family = none)]
pub fn setIndentationLevel(&self, indentation_level: NSInteger);
#[unsafe(method(target))]
#[unsafe(method_family = none)]
pub fn target(&self) -> Option<Retained<AnyObject>>;
#[unsafe(method(setTarget:))]
#[unsafe(method_family = none)]
pub unsafe fn setTarget(&self, target: Option<&AnyObject>);
#[unsafe(method(action))]
#[unsafe(method_family = none)]
pub fn action(&self) -> Option<Sel>;
#[unsafe(method(setAction:))]
#[unsafe(method_family = none)]
pub unsafe fn setAction(&self, action: Option<Sel>);
#[unsafe(method(tag))]
#[unsafe(method_family = none)]
pub fn tag(&self) -> NSInteger;
#[unsafe(method(setTag:))]
#[unsafe(method_family = none)]
pub fn setTag(&self, tag: NSInteger);
#[unsafe(method(representedObject))]
#[unsafe(method_family = none)]
pub fn representedObject(&self) -> Option<Retained<AnyObject>>;
#[unsafe(method(setRepresentedObject:))]
#[unsafe(method_family = none)]
pub unsafe fn setRepresentedObject(&self, represented_object: Option<&AnyObject>);
#[cfg(all(feature = "NSResponder", feature = "NSView"))]
#[unsafe(method(view))]
#[unsafe(method_family = none)]
pub fn view(&self) -> Option<Retained<NSView>>;
#[cfg(all(feature = "NSResponder", feature = "NSView"))]
#[unsafe(method(setView:))]
#[unsafe(method_family = none)]
pub fn setView(&self, view: Option<&NSView>);
#[unsafe(method(isHighlighted))]
#[unsafe(method_family = none)]
pub fn isHighlighted(&self) -> bool;
#[unsafe(method(isHidden))]
#[unsafe(method_family = none)]
pub fn isHidden(&self) -> bool;
#[unsafe(method(setHidden:))]
#[unsafe(method_family = none)]
pub fn setHidden(&self, hidden: bool);
#[unsafe(method(isHiddenOrHasHiddenAncestor))]
#[unsafe(method_family = none)]
pub fn isHiddenOrHasHiddenAncestor(&self) -> bool;
#[unsafe(method(toolTip))]
#[unsafe(method_family = none)]
pub fn toolTip(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setToolTip:))]
#[unsafe(method_family = none)]
pub fn setToolTip(&self, tool_tip: Option<&NSString>);
#[cfg(feature = "NSMenuItemBadge")]
#[unsafe(method(badge))]
#[unsafe(method_family = none)]
pub fn badge(&self) -> Option<Retained<NSMenuItemBadge>>;
#[cfg(feature = "NSMenuItemBadge")]
#[unsafe(method(setBadge:))]
#[unsafe(method_family = none)]
pub fn setBadge(&self, badge: Option<&NSMenuItemBadge>);
);
}
impl NSMenuItem {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
#[cfg(all(feature = "NSResponder", feature = "NSView"))]
impl NSView {
extern_methods!(
#[unsafe(method(enclosingMenuItem))]
#[unsafe(method_family = none)]
pub fn enclosingMenuItem(&self) -> Option<Retained<NSMenuItem>>;
);
}
extern "C" {
#[cfg(feature = "NSUserInterfaceItemIdentification")]
pub static NSMenuItemImportFromDeviceIdentifier: &'static NSUserInterfaceItemIdentifier;
}
impl NSMenuItem {
extern_methods!(
#[deprecated]
#[unsafe(method(setMnemonicLocation:))]
#[unsafe(method_family = none)]
pub fn setMnemonicLocation(&self, location: NSUInteger);
#[deprecated]
#[unsafe(method(mnemonicLocation))]
#[unsafe(method_family = none)]
pub fn mnemonicLocation(&self) -> NSUInteger;
#[deprecated]
#[unsafe(method(mnemonic))]
#[unsafe(method_family = none)]
pub fn mnemonic(&self) -> Option<Retained<NSString>>;
#[deprecated]
#[unsafe(method(setTitleWithMnemonic:))]
#[unsafe(method_family = none)]
pub fn setTitleWithMnemonic(&self, string_with_ampersand: &NSString);
);
}