use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSTextContentManagerEnumerationOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSTextContentManagerEnumerationOptions: NSUInteger {
#[doc(alias = "NSTextContentManagerEnumerationOptionsNone")]
const None = 0;
#[doc(alias = "NSTextContentManagerEnumerationOptionsReverse")]
const Reverse = 1<<0;
}
}
unsafe impl Encode for NSTextContentManagerEnumerationOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSTextContentManagerEnumerationOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_protocol!(
pub unsafe trait NSTextElementProvider: NSObjectProtocol {
#[cfg(feature = "NSTextRange")]
#[method_id(@__retain_semantics Other documentRange)]
unsafe fn documentRange(&self) -> Retained<NSTextRange>;
#[cfg(all(feature = "NSTextElement", feature = "NSTextRange", feature = "block2"))]
#[method_id(@__retain_semantics Other enumerateTextElementsFromLocation:options:usingBlock:)]
unsafe fn enumerateTextElementsFromLocation_options_usingBlock(
&self,
text_location: Option<&ProtocolObject<dyn NSTextLocation>>,
options: NSTextContentManagerEnumerationOptions,
block: &block2::Block<dyn Fn(NonNull<NSTextElement>) -> Bool + '_>,
) -> Option<Retained<ProtocolObject<dyn NSTextLocation>>>;
#[cfg(all(feature = "NSTextElement", feature = "NSTextRange"))]
#[method(replaceContentsInRange:withTextElements:)]
unsafe fn replaceContentsInRange_withTextElements(
&self,
range: &NSTextRange,
text_elements: Option<&NSArray<NSTextElement>>,
);
#[cfg(feature = "block2")]
#[method(synchronizeToBackingStore:)]
unsafe fn synchronizeToBackingStore(
&self,
completion_handler: Option<&block2::Block<dyn Fn(*mut NSError)>>,
);
#[cfg(feature = "NSTextRange")]
#[optional]
#[method_id(@__retain_semantics Other locationFromLocation:withOffset:)]
unsafe fn locationFromLocation_withOffset(
&self,
location: &ProtocolObject<dyn NSTextLocation>,
offset: NSInteger,
) -> Option<Retained<ProtocolObject<dyn NSTextLocation>>>;
#[cfg(feature = "NSTextRange")]
#[optional]
#[method(offsetFromLocation:toLocation:)]
unsafe fn offsetFromLocation_toLocation(
&self,
from: &ProtocolObject<dyn NSTextLocation>,
to: &ProtocolObject<dyn NSTextLocation>,
) -> NSInteger;
#[cfg(feature = "NSTextRange")]
#[optional]
#[method_id(@__retain_semantics Other adjustedRangeFromRange:forEditingTextSelection:)]
unsafe fn adjustedRangeFromRange_forEditingTextSelection(
&self,
text_range: &NSTextRange,
for_editing_text_selection: bool,
) -> Option<Retained<NSTextRange>>;
}
unsafe impl ProtocolType for dyn NSTextElementProvider {}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSTextContentManager;
unsafe impl ClassType for NSTextContentManager {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for NSTextContentManager {}
unsafe impl NSObjectProtocol for NSTextContentManager {}
unsafe impl NSSecureCoding for NSTextContentManager {}
unsafe impl NSTextElementProvider for NSTextContentManager {}
extern_methods!(
unsafe impl NSTextContentManager {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn NSTextContentManagerDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn NSTextContentManagerDelegate>>,
);
#[cfg(feature = "NSTextLayoutManager")]
#[method_id(@__retain_semantics Other textLayoutManagers)]
pub unsafe fn textLayoutManagers(&self) -> Retained<NSArray<NSTextLayoutManager>>;
#[cfg(feature = "NSTextLayoutManager")]
#[method(addTextLayoutManager:)]
pub unsafe fn addTextLayoutManager(&self, text_layout_manager: &NSTextLayoutManager);
#[cfg(feature = "NSTextLayoutManager")]
#[method(removeTextLayoutManager:)]
pub unsafe fn removeTextLayoutManager(&self, text_layout_manager: &NSTextLayoutManager);
#[cfg(feature = "NSTextLayoutManager")]
#[method_id(@__retain_semantics Other primaryTextLayoutManager)]
pub unsafe fn primaryTextLayoutManager(&self) -> Option<Retained<NSTextLayoutManager>>;
#[cfg(feature = "NSTextLayoutManager")]
#[method(setPrimaryTextLayoutManager:)]
pub unsafe fn setPrimaryTextLayoutManager(
&self,
primary_text_layout_manager: Option<&NSTextLayoutManager>,
);
#[cfg(feature = "block2")]
#[method(synchronizeTextLayoutManagers:)]
pub unsafe fn synchronizeTextLayoutManagers(
&self,
completion_handler: Option<&block2::Block<dyn Fn(*mut NSError)>>,
);
#[cfg(all(feature = "NSTextElement", feature = "NSTextRange"))]
#[method_id(@__retain_semantics Other textElementsForRange:)]
pub unsafe fn textElementsForRange(
&self,
range: &NSTextRange,
) -> Retained<NSArray<NSTextElement>>;
#[method(hasEditingTransaction)]
pub unsafe fn hasEditingTransaction(&self) -> bool;
#[cfg(feature = "block2")]
#[method(performEditingTransactionUsingBlock:)]
pub unsafe fn performEditingTransactionUsingBlock(
&self,
transaction: &block2::Block<dyn Fn() + '_>,
);
#[cfg(feature = "NSTextRange")]
#[method(recordEditActionInRange:newTextRange:)]
pub unsafe fn recordEditActionInRange_newTextRange(
&self,
original_text_range: &NSTextRange,
new_text_range: &NSTextRange,
);
#[method(automaticallySynchronizesTextLayoutManagers)]
pub unsafe fn automaticallySynchronizesTextLayoutManagers(&self) -> bool;
#[method(setAutomaticallySynchronizesTextLayoutManagers:)]
pub unsafe fn setAutomaticallySynchronizesTextLayoutManagers(
&self,
automatically_synchronizes_text_layout_managers: bool,
);
#[method(automaticallySynchronizesToBackingStore)]
pub unsafe fn automaticallySynchronizesToBackingStore(&self) -> bool;
#[method(setAutomaticallySynchronizesToBackingStore:)]
pub unsafe fn setAutomaticallySynchronizesToBackingStore(
&self,
automatically_synchronizes_to_backing_store: bool,
);
}
);
extern_methods!(
unsafe impl NSTextContentManager {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait NSTextContentManagerDelegate: NSObjectProtocol {
#[cfg(all(feature = "NSTextElement", feature = "NSTextRange"))]
#[optional]
#[method_id(@__retain_semantics Other textContentManager:textElementAtLocation:)]
unsafe fn textContentManager_textElementAtLocation(
&self,
text_content_manager: &NSTextContentManager,
location: &ProtocolObject<dyn NSTextLocation>,
) -> Option<Retained<NSTextElement>>;
#[cfg(feature = "NSTextElement")]
#[optional]
#[method(textContentManager:shouldEnumerateTextElement:options:)]
unsafe fn textContentManager_shouldEnumerateTextElement_options(
&self,
text_content_manager: &NSTextContentManager,
text_element: &NSTextElement,
options: NSTextContentManagerEnumerationOptions,
) -> bool;
}
unsafe impl ProtocolType for dyn NSTextContentManagerDelegate {}
);
extern_protocol!(
pub unsafe trait NSTextContentStorageDelegate: NSTextContentManagerDelegate {
#[cfg(feature = "NSTextElement")]
#[optional]
#[method_id(@__retain_semantics Other textContentStorage:textParagraphWithRange:)]
unsafe fn textContentStorage_textParagraphWithRange(
&self,
text_content_storage: &NSTextContentStorage,
range: NSRange,
) -> Option<Retained<NSTextParagraph>>;
}
unsafe impl ProtocolType for dyn NSTextContentStorageDelegate {}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSTextContentStorage;
unsafe impl ClassType for NSTextContentStorage {
#[inherits(NSObject)]
type Super = NSTextContentManager;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for NSTextContentStorage {}
unsafe impl NSObjectProtocol for NSTextContentStorage {}
unsafe impl NSSecureCoding for NSTextContentStorage {}
unsafe impl NSTextElementProvider for NSTextContentStorage {}
#[cfg(feature = "NSTextStorage")]
unsafe impl NSTextStorageObserving for NSTextContentStorage {}
extern_methods!(
unsafe impl NSTextContentStorage {
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn NSTextContentStorageDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn NSTextContentStorageDelegate>>,
);
#[method_id(@__retain_semantics Other attributedString)]
pub unsafe fn attributedString(&self) -> Option<Retained<NSAttributedString>>;
#[method(setAttributedString:)]
pub unsafe fn setAttributedString(&self, attributed_string: Option<&NSAttributedString>);
#[cfg(feature = "NSTextElement")]
#[method_id(@__retain_semantics Other attributedStringForTextElement:)]
pub unsafe fn attributedStringForTextElement(
&self,
text_element: &NSTextElement,
) -> Option<Retained<NSAttributedString>>;
#[cfg(feature = "NSTextElement")]
#[method_id(@__retain_semantics Other textElementForAttributedString:)]
pub unsafe fn textElementForAttributedString(
&self,
attributed_string: &NSAttributedString,
) -> Option<Retained<NSTextElement>>;
#[cfg(feature = "NSTextRange")]
#[method_id(@__retain_semantics Other locationFromLocation:withOffset:)]
pub unsafe fn locationFromLocation_withOffset(
&self,
location: &ProtocolObject<dyn NSTextLocation>,
offset: NSInteger,
) -> Option<Retained<ProtocolObject<dyn NSTextLocation>>>;
#[cfg(feature = "NSTextRange")]
#[method(offsetFromLocation:toLocation:)]
pub unsafe fn offsetFromLocation_toLocation(
&self,
from: &ProtocolObject<dyn NSTextLocation>,
to: &ProtocolObject<dyn NSTextLocation>,
) -> NSInteger;
#[cfg(feature = "NSTextRange")]
#[method_id(@__retain_semantics Other adjustedRangeFromRange:forEditingTextSelection:)]
pub unsafe fn adjustedRangeFromRange_forEditingTextSelection(
&self,
text_range: &NSTextRange,
for_editing_text_selection: bool,
) -> Option<Retained<NSTextRange>>;
}
);
extern_methods!(
unsafe impl NSTextContentStorage {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
}
);
extern_methods!(
unsafe impl NSTextContentStorage {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern "C" {
pub static NSTextContentStorageUnsupportedAttributeAddedNotification:
&'static NSNotificationName;
}