use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type UIMenuIdentifier = NSString;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIMenuOptions(pub NSUInteger);
bitflags::bitflags! {
impl UIMenuOptions: NSUInteger {
#[doc(alias = "UIMenuOptionsDisplayInline")]
const DisplayInline = 1<<0;
#[doc(alias = "UIMenuOptionsDestructive")]
const Destructive = 1<<1;
#[doc(alias = "UIMenuOptionsSingleSelection")]
const SingleSelection = 1<<5;
#[doc(alias = "UIMenuOptionsDisplayAsPalette")]
const DisplayAsPalette = 1<<7;
}
}
unsafe impl Encode for UIMenuOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for UIMenuOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIMenuElementSize(pub NSInteger);
impl UIMenuElementSize {
#[doc(alias = "UIMenuElementSizeSmall")]
pub const Small: Self = Self(0);
#[doc(alias = "UIMenuElementSizeMedium")]
pub const Medium: Self = Self(1);
#[doc(alias = "UIMenuElementSizeLarge")]
pub const Large: Self = Self(2);
#[doc(alias = "UIMenuElementSizeAutomatic")]
pub const Automatic: Self = Self(-1);
}
unsafe impl Encode for UIMenuElementSize {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIMenuElementSize {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "UIMenuElement")]
pub struct UIMenu;
#[cfg(feature = "UIMenuElement")]
unsafe impl ClassType for UIMenu {
#[inherits(NSObject)]
type Super = UIMenuElement;
type Mutability = MainThreadOnly;
}
);
#[cfg(feature = "UIMenuElement")]
unsafe impl NSCoding for UIMenu {}
#[cfg(feature = "UIMenuElement")]
unsafe impl NSCopying for UIMenu {}
#[cfg(feature = "UIMenuElement")]
unsafe impl NSObjectProtocol for UIMenu {}
#[cfg(feature = "UIMenuElement")]
unsafe impl NSSecureCoding for UIMenu {}
extern_methods!(
#[cfg(feature = "UIMenuElement")]
unsafe impl UIMenu {
#[method_id(@__retain_semantics Other identifier)]
pub unsafe fn identifier(&self) -> Retained<UIMenuIdentifier>;
#[method(options)]
pub unsafe fn options(&self) -> UIMenuOptions;
#[method(preferredElementSize)]
pub unsafe fn preferredElementSize(&self) -> UIMenuElementSize;
#[method(setPreferredElementSize:)]
pub unsafe fn setPreferredElementSize(&self, preferred_element_size: UIMenuElementSize);
#[method_id(@__retain_semantics Other children)]
pub unsafe fn children(&self) -> Retained<NSArray<UIMenuElement>>;
#[method_id(@__retain_semantics Other selectedElements)]
pub unsafe fn selectedElements(&self) -> Retained<NSArray<UIMenuElement>>;
#[cfg(feature = "UIMenuDisplayPreferences")]
#[method_id(@__retain_semantics Other displayPreferences)]
pub unsafe fn displayPreferences(&self) -> Option<Retained<UIMenuDisplayPreferences>>;
#[cfg(feature = "UIMenuDisplayPreferences")]
#[method(setDisplayPreferences:)]
pub unsafe fn setDisplayPreferences(
&self,
display_preferences: Option<&UIMenuDisplayPreferences>,
);
#[method_id(@__retain_semantics Other menuWithChildren:)]
pub unsafe fn menuWithChildren(
children: &NSArray<UIMenuElement>,
mtm: MainThreadMarker,
) -> Retained<UIMenu>;
#[method_id(@__retain_semantics Other menuWithTitle:children:)]
pub unsafe fn menuWithTitle_children(
title: &NSString,
children: &NSArray<UIMenuElement>,
mtm: MainThreadMarker,
) -> Retained<UIMenu>;
#[cfg(feature = "UIImage")]
#[method_id(@__retain_semantics Other menuWithTitle:image:identifier:options:children:)]
pub unsafe fn menuWithTitle_image_identifier_options_children(
title: &NSString,
image: Option<&UIImage>,
identifier: Option<&UIMenuIdentifier>,
options: UIMenuOptions,
children: &NSArray<UIMenuElement>,
mtm: MainThreadMarker,
) -> Retained<UIMenu>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
#[method_id(@__retain_semantics Other menuByReplacingChildren:)]
pub unsafe fn menuByReplacingChildren(
&self,
new_children: &NSArray<UIMenuElement>,
) -> Retained<UIMenu>;
}
);
extern "C" {
pub static UIMenuApplication: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuFile: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuEdit: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuView: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuWindow: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuHelp: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuAbout: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuPreferences: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuServices: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuHide: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuQuit: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuNewScene: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuOpenRecent: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuClose: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuPrint: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuDocument: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuUndoRedo: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuStandardEdit: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuFind: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuReplace: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuShare: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuTextStyle: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSpelling: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSpellingPanel: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSpellingOptions: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSubstitutions: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSubstitutionsPanel: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSubstitutionOptions: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuTransformations: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSpeech: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuLookup: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuLearn: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuFormat: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuAutoFill: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuFont: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuTextSize: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuTextColor: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuTextStylePasteboard: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuText: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuWritingDirection: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuAlignment: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuToolbar: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuSidebar: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuFullscreen: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuMinimizeAndZoom: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuBringAllToFront: &'static UIMenuIdentifier;
}
extern "C" {
pub static UIMenuRoot: &'static UIMenuIdentifier;
}