use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIBandSelectionInteractionState(pub NSInteger);
impl UIBandSelectionInteractionState {
#[doc(alias = "UIBandSelectionInteractionStatePossible")]
pub const Possible: Self = Self(0);
#[doc(alias = "UIBandSelectionInteractionStateBegan")]
pub const Began: Self = Self(1);
#[doc(alias = "UIBandSelectionInteractionStateSelecting")]
pub const Selecting: Self = Self(2);
#[doc(alias = "UIBandSelectionInteractionStateEnded")]
pub const Ended: Self = Self(3);
}
unsafe impl Encode for UIBandSelectionInteractionState {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIBandSelectionInteractionState {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIBandSelectionInteraction;
unsafe impl ClassType for UIBandSelectionInteraction {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSObjectProtocol for UIBandSelectionInteraction {}
#[cfg(feature = "UIInteraction")]
unsafe impl UIInteraction for UIBandSelectionInteraction {}
extern_methods!(
unsafe impl UIBandSelectionInteraction {
#[method(isEnabled)]
pub unsafe fn isEnabled(&self) -> bool;
#[method(setEnabled:)]
pub unsafe fn setEnabled(&self, enabled: bool);
#[method(state)]
pub unsafe fn state(&self) -> UIBandSelectionInteractionState;
#[method(selectionRect)]
pub unsafe fn selectionRect(&self) -> CGRect;
#[cfg(feature = "UICommand")]
#[method(initialModifierFlags)]
pub unsafe fn initialModifierFlags(&self) -> UIKeyModifierFlags;
#[cfg(feature = "block2")]
#[method(shouldBeginHandler)]
pub unsafe fn shouldBeginHandler(
&self,
) -> *mut block2::Block<dyn Fn(NonNull<UIBandSelectionInteraction>, CGPoint) -> Bool>;
#[cfg(feature = "block2")]
#[method(setShouldBeginHandler:)]
pub unsafe fn setShouldBeginHandler(
&self,
should_begin_handler: Option<
&block2::Block<dyn Fn(NonNull<UIBandSelectionInteraction>, CGPoint) -> Bool>,
>,
);
#[cfg(feature = "block2")]
#[method_id(@__retain_semantics Init initWithSelectionHandler:)]
pub unsafe fn initWithSelectionHandler(
this: Allocated<Self>,
selection_handler: &block2::Block<dyn Fn(NonNull<UIBandSelectionInteraction>)>,
) -> 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>;
}
);