use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIFocusDebugger;
unsafe impl ClassType for UIFocusDebugger {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSObjectProtocol for UIFocusDebugger {}
extern_methods!(
unsafe impl UIFocusDebugger {
#[method_id(@__retain_semantics Other help)]
pub unsafe fn help(
mtm: MainThreadMarker,
) -> Retained<ProtocolObject<dyn UIFocusDebuggerOutput>>;
#[method_id(@__retain_semantics Other status)]
pub unsafe fn status(
mtm: MainThreadMarker,
) -> Retained<ProtocolObject<dyn UIFocusDebuggerOutput>>;
#[cfg(feature = "UIFocus")]
#[method_id(@__retain_semantics Other checkFocusabilityForItem:)]
pub unsafe fn checkFocusabilityForItem(
item: &ProtocolObject<dyn UIFocusItem>,
) -> Retained<ProtocolObject<dyn UIFocusDebuggerOutput>>;
#[cfg(feature = "UIFocus")]
#[method_id(@__retain_semantics Other simulateFocusUpdateRequestFromEnvironment:)]
pub unsafe fn simulateFocusUpdateRequestFromEnvironment(
environment: &ProtocolObject<dyn UIFocusEnvironment>,
) -> Retained<ProtocolObject<dyn UIFocusDebuggerOutput>>;
#[cfg(feature = "UIFocus")]
#[method_id(@__retain_semantics Other focusGroupsForEnvironment:)]
pub unsafe fn focusGroupsForEnvironment(
environment: &ProtocolObject<dyn UIFocusEnvironment>,
) -> Retained<ProtocolObject<dyn UIFocusDebuggerOutput>>;
#[cfg(feature = "UIFocus")]
#[method_id(@__retain_semantics Other preferredFocusEnvironmentsForEnvironment:)]
pub unsafe fn preferredFocusEnvironmentsForEnvironment(
environment: &ProtocolObject<dyn UIFocusEnvironment>,
) -> Retained<ProtocolObject<dyn UIFocusDebuggerOutput>>;
}
);
extern_methods!(
unsafe impl UIFocusDebugger {
#[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>;
}
);
extern_protocol!(
pub unsafe trait UIFocusDebuggerOutput: NSObjectProtocol + IsMainThreadOnly {}
unsafe impl ProtocolType for dyn UIFocusDebuggerOutput {}
);