use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIMenuSystem;
);
extern_conformance!(
unsafe impl NSObjectProtocol for UIMenuSystem {}
);
impl UIMenuSystem {
extern_methods!(
#[unsafe(method(mainSystem))]
#[unsafe(method_family = none)]
pub fn mainSystem(mtm: MainThreadMarker) -> Retained<UIMenuSystem>;
#[unsafe(method(contextSystem))]
#[unsafe(method_family = none)]
pub fn contextSystem(mtm: MainThreadMarker) -> Retained<UIMenuSystem>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(setNeedsRebuild))]
#[unsafe(method_family = none)]
pub fn setNeedsRebuild(&self);
#[unsafe(method(setNeedsRevalidate))]
#[unsafe(method_family = none)]
pub fn setNeedsRevalidate(&self);
);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIMenuSystemElementGroupPreference(pub NSInteger);
impl UIMenuSystemElementGroupPreference {
#[doc(alias = "UIMenuSystemElementGroupPreferenceAutomatic")]
pub const Automatic: Self = Self(0);
#[doc(alias = "UIMenuSystemElementGroupPreferenceRemoved")]
pub const Removed: Self = Self(1);
#[doc(alias = "UIMenuSystemElementGroupPreferenceIncluded")]
pub const Included: Self = Self(2);
}
unsafe impl Encode for UIMenuSystemElementGroupPreference {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIMenuSystemElementGroupPreference {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
unsafe impl Send for UIMenuSystemElementGroupPreference {}
unsafe impl Sync for UIMenuSystemElementGroupPreference {}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIMenuSystemFindElementGroupConfigurationStyle(pub NSInteger);
impl UIMenuSystemFindElementGroupConfigurationStyle {
#[doc(alias = "UIMenuSystemFindElementGroupConfigurationStyleAutomatic")]
pub const Automatic: Self = Self(0);
#[doc(alias = "UIMenuSystemFindElementGroupConfigurationStyleSearch")]
pub const Search: Self = Self(1);
#[doc(alias = "UIMenuSystemFindElementGroupConfigurationStyleNonEditableText")]
pub const NonEditableText: Self = Self(2);
#[doc(alias = "UIMenuSystemFindElementGroupConfigurationStyleEditableText")]
pub const EditableText: Self = Self(3);
}
unsafe impl Encode for UIMenuSystemFindElementGroupConfigurationStyle {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIMenuSystemFindElementGroupConfigurationStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
unsafe impl Send for UIMenuSystemFindElementGroupConfigurationStyle {}
unsafe impl Sync for UIMenuSystemFindElementGroupConfigurationStyle {}
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIMenuSystemFindElementGroupConfiguration;
);
extern_conformance!(
unsafe impl NSObjectProtocol for UIMenuSystemFindElementGroupConfiguration {}
);
impl UIMenuSystemFindElementGroupConfiguration {
extern_methods!(
#[unsafe(method(style))]
#[unsafe(method_family = none)]
pub fn style(&self) -> UIMenuSystemFindElementGroupConfigurationStyle;
#[unsafe(method(setStyle:))]
#[unsafe(method_family = none)]
pub fn setStyle(&self, style: UIMenuSystemFindElementGroupConfigurationStyle);
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}