use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
#[cfg(all(
feature = "UIPasteConfigurationSupporting",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting"
))]
pub unsafe trait UITextDroppable:
UITextInput + UITextPasteConfigurationSupporting + IsMainThreadOnly
{
#[method_id(@__retain_semantics Other textDropDelegate)]
unsafe fn textDropDelegate(
&self,
) -> Option<Retained<ProtocolObject<dyn UITextDropDelegate>>>;
#[method(setTextDropDelegate:)]
unsafe fn setTextDropDelegate(
&self,
text_drop_delegate: Option<&ProtocolObject<dyn UITextDropDelegate>>,
);
#[cfg(feature = "UIDropInteraction")]
#[method_id(@__retain_semantics Other textDropInteraction)]
unsafe fn textDropInteraction(&self) -> Option<Retained<UIDropInteraction>>;
#[method(isTextDropActive)]
unsafe fn isTextDropActive(&self) -> bool;
}
#[cfg(all(
feature = "UIPasteConfigurationSupporting",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting"
))]
unsafe impl ProtocolType for dyn UITextDroppable {}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UITextDropEditability(pub NSUInteger);
impl UITextDropEditability {
#[doc(alias = "UITextDropEditabilityNo")]
pub const No: Self = Self(0);
#[doc(alias = "UITextDropEditabilityTemporary")]
pub const Temporary: Self = Self(1);
#[doc(alias = "UITextDropEditabilityYes")]
pub const Yes: Self = Self(2);
}
unsafe impl Encode for UITextDropEditability {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for UITextDropEditability {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_protocol!(
pub unsafe trait UITextDropDelegate: NSObjectProtocol + IsMainThreadOnly {
#[cfg(all(
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method(textDroppableView:willBecomeEditableForDrop:)]
unsafe fn textDroppableView_willBecomeEditableForDrop(
&self,
text_droppable_view: &UIView,
drop: &ProtocolObject<dyn UITextDropRequest>,
) -> UITextDropEditability;
#[cfg(all(
feature = "UIDropInteraction",
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextDropProposal",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method_id(@__retain_semantics Other textDroppableView:proposalForDrop:)]
unsafe fn textDroppableView_proposalForDrop(
&self,
text_droppable_view: &UIView,
drop: &ProtocolObject<dyn UITextDropRequest>,
) -> Retained<UITextDropProposal>;
#[cfg(all(
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method(textDroppableView:willPerformDrop:)]
unsafe fn textDroppableView_willPerformDrop(
&self,
text_droppable_view: &UIView,
drop: &ProtocolObject<dyn UITextDropRequest>,
);
#[cfg(all(
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITargetedDragPreview",
feature = "UITargetedPreview",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method_id(@__retain_semantics Other textDroppableView:previewForDroppingAllItemsWithDefault:)]
unsafe fn textDroppableView_previewForDroppingAllItemsWithDefault(
&self,
text_droppable_view: &UIView,
default_preview: &UITargetedDragPreview,
) -> Option<Retained<UITargetedDragPreview>>;
#[cfg(all(
feature = "UIDragSession",
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method(textDroppableView:dropSessionDidEnter:)]
unsafe fn textDroppableView_dropSessionDidEnter(
&self,
text_droppable_view: &UIView,
session: &ProtocolObject<dyn UIDropSession>,
);
#[cfg(all(
feature = "UIDragSession",
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method(textDroppableView:dropSessionDidUpdate:)]
unsafe fn textDroppableView_dropSessionDidUpdate(
&self,
text_droppable_view: &UIView,
session: &ProtocolObject<dyn UIDropSession>,
);
#[cfg(all(
feature = "UIDragSession",
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method(textDroppableView:dropSessionDidExit:)]
unsafe fn textDroppableView_dropSessionDidExit(
&self,
text_droppable_view: &UIView,
session: &ProtocolObject<dyn UIDropSession>,
);
#[cfg(all(
feature = "UIDragSession",
feature = "UIPasteConfigurationSupporting",
feature = "UIResponder",
feature = "UITextInput",
feature = "UITextInputTraits",
feature = "UITextPasteConfigurationSupporting",
feature = "UIView"
))]
#[optional]
#[method(textDroppableView:dropSessionDidEnd:)]
unsafe fn textDroppableView_dropSessionDidEnd(
&self,
text_droppable_view: &UIView,
session: &ProtocolObject<dyn UIDropSession>,
);
}
unsafe impl ProtocolType for dyn UITextDropDelegate {}
);
extern_protocol!(
pub unsafe trait UITextDropRequest: NSObjectProtocol + IsMainThreadOnly {
#[cfg(feature = "UITextInput")]
#[method_id(@__retain_semantics Other dropPosition)]
unsafe fn dropPosition(&self) -> Retained<UITextPosition>;
#[cfg(all(feature = "UIDropInteraction", feature = "UITextDropProposal"))]
#[method_id(@__retain_semantics Other suggestedProposal)]
unsafe fn suggestedProposal(&self) -> Retained<UITextDropProposal>;
#[method(isSameView)]
unsafe fn isSameView(&self) -> bool;
#[cfg(feature = "UIDragSession")]
#[method_id(@__retain_semantics Other dropSession)]
unsafe fn dropSession(&self) -> Retained<ProtocolObject<dyn UIDropSession>>;
}
unsafe impl ProtocolType for dyn UITextDropRequest {}
);