use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSTextCursorAccessoryPlacement(pub NSInteger);
impl NSTextCursorAccessoryPlacement {
#[doc(alias = "NSTextCursorAccessoryPlacementUnspecified")]
pub const Unspecified: Self = Self(0);
#[doc(alias = "NSTextCursorAccessoryPlacementBackward")]
pub const Backward: Self = Self(1);
#[doc(alias = "NSTextCursorAccessoryPlacementForward")]
pub const Forward: Self = Self(2);
#[doc(alias = "NSTextCursorAccessoryPlacementInvisible")]
pub const Invisible: Self = Self(3);
#[doc(alias = "NSTextCursorAccessoryPlacementCenter")]
pub const Center: Self = Self(4);
#[doc(alias = "NSTextCursorAccessoryPlacementOffscreenLeft")]
pub const OffscreenLeft: Self = Self(5);
#[doc(alias = "NSTextCursorAccessoryPlacementOffscreenTop")]
pub const OffscreenTop: Self = Self(6);
#[doc(alias = "NSTextCursorAccessoryPlacementOffscreenRight")]
pub const OffscreenRight: Self = Self(7);
#[doc(alias = "NSTextCursorAccessoryPlacementOffscreenBottom")]
pub const OffscreenBottom: Self = Self(8);
}
unsafe impl Encode for NSTextCursorAccessoryPlacement {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for NSTextCursorAccessoryPlacement {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_protocol!(
pub unsafe trait NSTextInputClient {
#[unsafe(method(insertText:replacementRange:))]
#[unsafe(method_family = none)]
unsafe fn insertText_replacementRange(
&self,
string: &AnyObject,
replacement_range: NSRange,
);
#[unsafe(method(doCommandBySelector:))]
#[unsafe(method_family = none)]
unsafe fn doCommandBySelector(&self, selector: Sel);
#[unsafe(method(setMarkedText:selectedRange:replacementRange:))]
#[unsafe(method_family = none)]
unsafe fn setMarkedText_selectedRange_replacementRange(
&self,
string: &AnyObject,
selected_range: NSRange,
replacement_range: NSRange,
);
#[unsafe(method(unmarkText))]
#[unsafe(method_family = none)]
fn unmarkText(&self);
#[unsafe(method(selectedRange))]
#[unsafe(method_family = none)]
fn selectedRange(&self) -> NSRange;
#[unsafe(method(markedRange))]
#[unsafe(method_family = none)]
fn markedRange(&self) -> NSRange;
#[unsafe(method(hasMarkedText))]
#[unsafe(method_family = none)]
fn hasMarkedText(&self) -> bool;
#[unsafe(method(attributedSubstringForProposedRange:actualRange:))]
#[unsafe(method_family = none)]
unsafe fn attributedSubstringForProposedRange_actualRange(
&self,
range: NSRange,
actual_range: NSRangePointer,
) -> Option<Retained<NSAttributedString>>;
#[unsafe(method(validAttributesForMarkedText))]
#[unsafe(method_family = none)]
fn validAttributesForMarkedText(&self) -> Retained<NSArray<NSAttributedStringKey>>;
#[unsafe(method(firstRectForCharacterRange:actualRange:))]
#[unsafe(method_family = none)]
unsafe fn firstRectForCharacterRange_actualRange(
&self,
range: NSRange,
actual_range: NSRangePointer,
) -> NSRect;
#[unsafe(method(characterIndexForPoint:))]
#[unsafe(method_family = none)]
fn characterIndexForPoint(&self, point: NSPoint) -> NSUInteger;
#[optional]
#[unsafe(method(attributedString))]
#[unsafe(method_family = none)]
fn attributedString(&self) -> Retained<NSAttributedString>;
#[cfg(feature = "objc2-core-foundation")]
#[optional]
#[unsafe(method(fractionOfDistanceThroughGlyphForPoint:))]
#[unsafe(method_family = none)]
fn fractionOfDistanceThroughGlyphForPoint(&self, point: NSPoint) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[optional]
#[unsafe(method(baselineDeltaForCharacterAtIndex:))]
#[unsafe(method_family = none)]
fn baselineDeltaForCharacterAtIndex(&self, an_index: NSUInteger) -> CGFloat;
#[optional]
#[unsafe(method(windowLevel))]
#[unsafe(method_family = none)]
fn windowLevel(&self) -> NSInteger;
#[optional]
#[unsafe(method(drawsVerticallyForCharacterAtIndex:))]
#[unsafe(method_family = none)]
fn drawsVerticallyForCharacterAtIndex(&self, char_index: NSUInteger) -> bool;
#[optional]
#[unsafe(method(preferredTextAccessoryPlacement))]
#[unsafe(method_family = none)]
fn preferredTextAccessoryPlacement(&self) -> NSTextCursorAccessoryPlacement;
#[optional]
#[unsafe(method(unionRectInVisibleSelectedRange))]
#[unsafe(method_family = none)]
fn unionRectInVisibleSelectedRange(&self) -> NSRect;
#[optional]
#[unsafe(method(documentVisibleRect))]
#[unsafe(method_family = none)]
fn documentVisibleRect(&self) -> NSRect;
#[optional]
#[unsafe(method(supportsAdaptiveImageGlyph))]
#[unsafe(method_family = none)]
fn supportsAdaptiveImageGlyph(&self) -> bool;
#[cfg(feature = "NSAdaptiveImageGlyph")]
#[optional]
#[unsafe(method(insertAdaptiveImageGlyph:replacementRange:))]
#[unsafe(method_family = none)]
fn insertAdaptiveImageGlyph_replacementRange(
&self,
adaptive_image_glyph: &NSAdaptiveImageGlyph,
replacement_range: NSRange,
);
}
);