use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type NSTextInputSourceIdentifier = NSString;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSTextInputContext;
unsafe impl ClassType for NSTextInputContext {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSObjectProtocol for NSTextInputContext {}
extern_methods!(
unsafe impl NSTextInputContext {
#[method_id(@__retain_semantics Other currentInputContext)]
pub unsafe fn currentInputContext(mtm: MainThreadMarker) -> Option<Id<NSTextInputContext>>;
#[cfg(feature = "NSTextInputClient")]
#[method_id(@__retain_semantics Init initWithClient:)]
pub unsafe fn initWithClient(
this: Allocated<Self>,
client: &ProtocolObject<dyn NSTextInputClient>,
) -> Id<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[cfg(feature = "NSTextInputClient")]
#[method_id(@__retain_semantics Other client)]
pub unsafe fn client(&self) -> Id<ProtocolObject<dyn NSTextInputClient>>;
#[method(acceptsGlyphInfo)]
pub unsafe fn acceptsGlyphInfo(&self) -> bool;
#[method(setAcceptsGlyphInfo:)]
pub unsafe fn setAcceptsGlyphInfo(&self, accepts_glyph_info: bool);
#[method_id(@__retain_semantics Other allowedInputSourceLocales)]
pub unsafe fn allowedInputSourceLocales(&self) -> Option<Id<NSArray<NSString>>>;
#[method(setAllowedInputSourceLocales:)]
pub unsafe fn setAllowedInputSourceLocales(
&self,
allowed_input_source_locales: Option<&NSArray<NSString>>,
);
#[method(activate)]
pub unsafe fn activate(&self);
#[method(deactivate)]
pub unsafe fn deactivate(&self);
#[cfg(feature = "NSEvent")]
#[method(handleEvent:)]
pub unsafe fn handleEvent(&self, event: &NSEvent) -> bool;
#[method(discardMarkedText)]
pub fn discardMarkedText(&self);
#[method(invalidateCharacterCoordinates)]
pub fn invalidateCharacterCoordinates(&self);
#[method(textInputClientWillStartScrollingOrZooming)]
pub unsafe fn textInputClientWillStartScrollingOrZooming(&self);
#[method(textInputClientDidEndScrollingOrZooming)]
pub unsafe fn textInputClientDidEndScrollingOrZooming(&self);
#[method_id(@__retain_semantics Other keyboardInputSources)]
pub unsafe fn keyboardInputSources(
&self,
) -> Option<Id<NSArray<NSTextInputSourceIdentifier>>>;
#[method_id(@__retain_semantics Other selectedKeyboardInputSource)]
pub fn selectedKeyboardInputSource(&self) -> Option<Id<NSTextInputSourceIdentifier>>;
#[method(setSelectedKeyboardInputSource:)]
pub unsafe fn setSelectedKeyboardInputSource(
&self,
selected_keyboard_input_source: Option<&NSTextInputSourceIdentifier>,
);
#[method_id(@__retain_semantics Other localizedNameForInputSource:)]
pub unsafe fn localizedNameForInputSource(
input_source_identifier: &NSTextInputSourceIdentifier,
mtm: MainThreadMarker,
) -> Option<Id<NSString>>;
}
);
extern_methods!(
unsafe impl NSTextInputContext {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Id<Self>;
}
);
extern "C" {
pub static NSTextInputContextKeyboardSelectionDidChangeNotification:
&'static NSNotificationName;
}