using CPF.Mac.CoreGraphics; using CPF.Mac.Foundation; using CPF.Mac.ObjCRuntime; using System; using System.ComponentModel; namespace CPF.Mac.AppKit { [Register("NSText", true)] public class NSText : NSView { [Register] private sealed class _NSTextDelegate : NSTextDelegate { internal NSTextPredicate textShouldBeginEditing; internal NSTextPredicate textShouldEndEditing; internal EventHandler textDidBeginEditing; internal EventHandler textDidEndEditing; internal EventHandler textDidChange; [Preserve(Conditional = true)] public override bool TextShouldBeginEditing(NSText textObject) { return textShouldBeginEditing?.Invoke(textObject) ?? true; } [Preserve(Conditional = true)] public override bool TextShouldEndEditing(NSText textObject) { return textShouldEndEditing?.Invoke(textObject) ?? true; } [Preserve(Conditional = true)] public override void TextDidBeginEditing(NSNotification notification) { textDidBeginEditing?.Invoke(notification, EventArgs.Empty); } [Preserve(Conditional = true)] public override void TextDidEndEditing(NSNotification notification) { textDidEndEditing?.Invoke(notification, EventArgs.Empty); } [Preserve(Conditional = true)] public override void TextDidChange(NSNotification notification) { textDidChange?.Invoke(notification, EventArgs.Empty); } } private static readonly IntPtr selIsRulerVisibleHandle = Selector.GetHandle("isRulerVisible"); private static readonly IntPtr selStringHandle = Selector.GetHandle("string"); private static readonly IntPtr selSetString_Handle = Selector.GetHandle("setString:"); private static readonly IntPtr selDelegateHandle = Selector.GetHandle("delegate"); private static readonly IntPtr selSetDelegate_Handle = Selector.GetHandle("setDelegate:"); private static readonly IntPtr selIsEditableHandle = Selector.GetHandle("isEditable"); private static readonly IntPtr selSetEditable_Handle = Selector.GetHandle("setEditable:"); private static readonly IntPtr selIsSelectableHandle = Selector.GetHandle("isSelectable"); private static readonly IntPtr selSetSelectable_Handle = Selector.GetHandle("setSelectable:"); private static readonly IntPtr selIsRichTextHandle = Selector.GetHandle("isRichText"); private static readonly IntPtr selSetRichText_Handle = Selector.GetHandle("setRichText:"); private static readonly IntPtr selImportsGraphicsHandle = Selector.GetHandle("importsGraphics"); private static readonly IntPtr selSetImportsGraphics_Handle = Selector.GetHandle("setImportsGraphics:"); private static readonly IntPtr selIsFieldEditorHandle = Selector.GetHandle("isFieldEditor"); private static readonly IntPtr selSetFieldEditor_Handle = Selector.GetHandle("setFieldEditor:"); private static readonly IntPtr selUsesFontPanelHandle = Selector.GetHandle("usesFontPanel"); private static readonly IntPtr selSetUsesFontPanel_Handle = Selector.GetHandle("setUsesFontPanel:"); private static readonly IntPtr selDrawsBackgroundHandle = Selector.GetHandle("drawsBackground"); private static readonly IntPtr selSetDrawsBackground_Handle = Selector.GetHandle("setDrawsBackground:"); private static readonly IntPtr selBackgroundColorHandle = Selector.GetHandle("backgroundColor"); private static readonly IntPtr selSetBackgroundColor_Handle = Selector.GetHandle("setBackgroundColor:"); private static readonly IntPtr selSelectedRangeHandle = Selector.GetHandle("selectedRange"); private static readonly IntPtr selSetSelectedRange_Handle = Selector.GetHandle("setSelectedRange:"); private static readonly IntPtr selFontHandle = Selector.GetHandle("font"); private static readonly IntPtr selSetFont_Handle = Selector.GetHandle("setFont:"); private static readonly IntPtr selTextColorHandle = Selector.GetHandle("textColor"); private static readonly IntPtr selSetTextColor_Handle = Selector.GetHandle("setTextColor:"); private static readonly IntPtr selAlignmentHandle = Selector.GetHandle("alignment"); private static readonly IntPtr selSetAlignment_Handle = Selector.GetHandle("setAlignment:"); private static readonly IntPtr selBaseWritingDirectionHandle = Selector.GetHandle("baseWritingDirection"); private static readonly IntPtr selSetBaseWritingDirection_Handle = Selector.GetHandle("setBaseWritingDirection:"); private static readonly IntPtr selMaxSizeHandle = Selector.GetHandle("maxSize"); private static readonly IntPtr selSetMaxSize_Handle = Selector.GetHandle("setMaxSize:"); private static readonly IntPtr selMinSizeHandle = Selector.GetHandle("minSize"); private static readonly IntPtr selSetMinSize_Handle = Selector.GetHandle("setMinSize:"); private static readonly IntPtr selIsHorizontallyResizableHandle = Selector.GetHandle("isHorizontallyResizable"); private static readonly IntPtr selSetHorizontallyResizable_Handle = Selector.GetHandle("setHorizontallyResizable:"); private static readonly IntPtr selIsVerticallyResizableHandle = Selector.GetHandle("isVerticallyResizable"); private static readonly IntPtr selSetVerticallyResizable_Handle = Selector.GetHandle("setVerticallyResizable:"); private static readonly IntPtr selInitWithFrame_Handle = Selector.GetHandle("initWithFrame:"); private static readonly IntPtr selReplaceCharactersInRangeWithString_Handle = Selector.GetHandle("replaceCharactersInRange:withString:"); private static readonly IntPtr selReplaceCharactersInRangeWithRTF_Handle = Selector.GetHandle("replaceCharactersInRange:withRTF:"); private static readonly IntPtr selReplaceCharactersInRangeWithRTFD_Handle = Selector.GetHandle("replaceCharactersInRange:withRTFD:"); private static readonly IntPtr selRTFFromRange_Handle = Selector.GetHandle("RTFFromRange:"); private static readonly IntPtr selRTFDFromRange_Handle = Selector.GetHandle("RTFDFromRange:"); private static readonly IntPtr selWriteRTFDToFileAtomically_Handle = Selector.GetHandle("writeRTFDToFile:atomically:"); private static readonly IntPtr selReadRTFDFromFile_Handle = Selector.GetHandle("readRTFDFromFile:"); private static readonly IntPtr selScrollRangeToVisible_Handle = Selector.GetHandle("scrollRangeToVisible:"); private static readonly IntPtr selSetTextColorRange_Handle = Selector.GetHandle("setTextColor:range:"); private static readonly IntPtr selSetFontRange_Handle = Selector.GetHandle("setFont:range:"); private static readonly IntPtr selSizeToFitHandle = Selector.GetHandle("sizeToFit"); private static readonly IntPtr selCopy_Handle = Selector.GetHandle("copy:"); private static readonly IntPtr selCopyFont_Handle = Selector.GetHandle("copyFont:"); private static readonly IntPtr selCopyRuler_Handle = Selector.GetHandle("copyRuler:"); private static readonly IntPtr selCut_Handle = Selector.GetHandle("cut:"); private static readonly IntPtr selDelete_Handle = Selector.GetHandle("delete:"); private static readonly IntPtr selPaste_Handle = Selector.GetHandle("paste:"); private static readonly IntPtr selPasteFont_Handle = Selector.GetHandle("pasteFont:"); private static readonly IntPtr selPasteRuler_Handle = Selector.GetHandle("pasteRuler:"); private static readonly IntPtr selSelectAll_Handle = Selector.GetHandle("selectAll:"); private static readonly IntPtr selChangeFont_Handle = Selector.GetHandle("changeFont:"); private static readonly IntPtr selAlignLeft_Handle = Selector.GetHandle("alignLeft:"); private static readonly IntPtr selAlignRight_Handle = Selector.GetHandle("alignRight:"); private static readonly IntPtr selAlignCenter_Handle = Selector.GetHandle("alignCenter:"); private static readonly IntPtr selSubscript_Handle = Selector.GetHandle("subscript:"); private static readonly IntPtr selSuperscript_Handle = Selector.GetHandle("superscript:"); private static readonly IntPtr selUnderline_Handle = Selector.GetHandle("underline:"); private static readonly IntPtr selUnscript_Handle = Selector.GetHandle("unscript:"); private static readonly IntPtr selShowGuessPanel_Handle = Selector.GetHandle("showGuessPanel:"); private static readonly IntPtr selCheckSpelling_Handle = Selector.GetHandle("checkSpelling:"); private static readonly IntPtr selToggleRuler_Handle = Selector.GetHandle("toggleRuler:"); private static readonly IntPtr class_ptr = Class.GetHandle("NSText"); private object __mt_WeakDelegate_var; private object __mt_BackgroundColor_var; private object __mt_Font_var; private object __mt_TextColor_var; public override IntPtr ClassHandle => class_ptr; public virtual bool IsRulerVisible { [Export("isRulerVisible")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsRulerVisibleHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsRulerVisibleHandle); } } public virtual string Value { [Export("string")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selStringHandle)); } return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selStringHandle)); } [Export("setString:")] set { NSApplication.EnsureUIThread(); if (value == null) { throw new ArgumentNullException("value"); } IntPtr intPtr = NSString.CreateNative(value); if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetString_Handle, intPtr); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetString_Handle, intPtr); } NSString.ReleaseNative(intPtr); } } public virtual NSObject WeakDelegate { [Export("delegate")] get { NSApplication.EnsureUIThread(); return (NSObject)(__mt_WeakDelegate_var = ((!IsDirectBinding) ? Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selDelegateHandle)) : Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selDelegateHandle)))); } [Export("setDelegate:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetDelegate_Handle, value?.Handle ?? IntPtr.Zero); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetDelegate_Handle, value?.Handle ?? IntPtr.Zero); } __mt_WeakDelegate_var = value; } } public NSTextDelegate Delegate { get { return WeakDelegate as NSTextDelegate; } set { WeakDelegate = value; } } public virtual bool Editable { [Export("isEditable")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsEditableHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsEditableHandle); } [Export("setEditable:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetEditable_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetEditable_Handle, value); } } } public virtual bool Selectable { [Export("isSelectable")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsSelectableHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsSelectableHandle); } [Export("setSelectable:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetSelectable_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetSelectable_Handle, value); } } } public virtual bool RichText { [Export("isRichText")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsRichTextHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsRichTextHandle); } [Export("setRichText:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetRichText_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetRichText_Handle, value); } } } public virtual bool ImportsGraphics { [Export("importsGraphics")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selImportsGraphicsHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selImportsGraphicsHandle); } [Export("setImportsGraphics:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetImportsGraphics_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetImportsGraphics_Handle, value); } } } public virtual bool FieldEditor { [Export("isFieldEditor")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsFieldEditorHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsFieldEditorHandle); } [Export("setFieldEditor:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetFieldEditor_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetFieldEditor_Handle, value); } } } public virtual bool UsesFontPanel { [Export("usesFontPanel")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selUsesFontPanelHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selUsesFontPanelHandle); } [Export("setUsesFontPanel:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetUsesFontPanel_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetUsesFontPanel_Handle, value); } } } public virtual bool DrawsBackground { [Export("drawsBackground")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selDrawsBackgroundHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selDrawsBackgroundHandle); } [Export("setDrawsBackground:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetDrawsBackground_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetDrawsBackground_Handle, value); } } } public virtual NSColor BackgroundColor { [Export("backgroundColor")] get { NSApplication.EnsureUIThread(); return (NSColor)(__mt_BackgroundColor_var = ((!IsDirectBinding) ? ((NSColor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selBackgroundColorHandle))) : ((NSColor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selBackgroundColorHandle))))); } [Export("setBackgroundColor:")] set { NSApplication.EnsureUIThread(); if (value == null) { throw new ArgumentNullException("value"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetBackgroundColor_Handle, value.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetBackgroundColor_Handle, value.Handle); } __mt_BackgroundColor_var = value; } } public virtual NSRange SelectedRange { [Export("selectedRange")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.NSRange_objc_msgSend(base.Handle, selSelectedRangeHandle); } return Messaging.NSRange_objc_msgSendSuper(base.SuperHandle, selSelectedRangeHandle); } [Export("setSelectedRange:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_NSRange(base.Handle, selSetSelectedRange_Handle, value); } else { Messaging.void_objc_msgSendSuper_NSRange(base.SuperHandle, selSetSelectedRange_Handle, value); } } } public virtual NSFont Font { [Export("font")] get { NSApplication.EnsureUIThread(); return (NSFont)(__mt_Font_var = ((!IsDirectBinding) ? ((NSFont)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selFontHandle))) : ((NSFont)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selFontHandle))))); } [Export("setFont:")] set { NSApplication.EnsureUIThread(); if (value == null) { throw new ArgumentNullException("value"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetFont_Handle, value.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetFont_Handle, value.Handle); } __mt_Font_var = value; } } public virtual NSColor TextColor { [Export("textColor")] get { NSApplication.EnsureUIThread(); return (NSColor)(__mt_TextColor_var = ((!IsDirectBinding) ? ((NSColor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selTextColorHandle))) : ((NSColor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selTextColorHandle))))); } [Export("setTextColor:")] set { NSApplication.EnsureUIThread(); if (value == null) { throw new ArgumentNullException("value"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetTextColor_Handle, value.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetTextColor_Handle, value.Handle); } __mt_TextColor_var = value; } } public virtual NSTextAlignment Alignment { [Export("alignment")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return (NSTextAlignment)Messaging.UInt64_objc_msgSend(base.Handle, selAlignmentHandle); } return (NSTextAlignment)Messaging.UInt64_objc_msgSendSuper(base.SuperHandle, selAlignmentHandle); } [Export("setAlignment:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_UInt64(base.Handle, selSetAlignment_Handle, (ulong)value); } else { Messaging.void_objc_msgSendSuper_UInt64(base.SuperHandle, selSetAlignment_Handle, (ulong)value); } } } public virtual NSWritingDirection BaseWritingDirection { [Export("baseWritingDirection")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return (NSWritingDirection)Messaging.Int64_objc_msgSend(base.Handle, selBaseWritingDirectionHandle); } return (NSWritingDirection)Messaging.Int64_objc_msgSendSuper(base.SuperHandle, selBaseWritingDirectionHandle); } [Export("setBaseWritingDirection:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_Int64(base.Handle, selSetBaseWritingDirection_Handle, (long)value); } else { Messaging.void_objc_msgSendSuper_Int64(base.SuperHandle, selSetBaseWritingDirection_Handle, (long)value); } } } public virtual CGSize MaxSize { [Export("maxSize")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.CGSize_objc_msgSend(base.Handle, selMaxSizeHandle); } return Messaging.CGSize_objc_msgSendSuper(base.SuperHandle, selMaxSizeHandle); } [Export("setMaxSize:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_CGSize(base.Handle, selSetMaxSize_Handle, value); } else { Messaging.void_objc_msgSendSuper_CGSize(base.SuperHandle, selSetMaxSize_Handle, value); } } } public virtual CGSize MinSize { [Export("minSize")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.CGSize_objc_msgSend(base.Handle, selMinSizeHandle); } return Messaging.CGSize_objc_msgSendSuper(base.SuperHandle, selMinSizeHandle); } [Export("setMinSize:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_CGSize(base.Handle, selSetMinSize_Handle, value); } else { Messaging.void_objc_msgSendSuper_CGSize(base.SuperHandle, selSetMinSize_Handle, value); } } } public virtual bool HorizontallyResizable { [Export("isHorizontallyResizable")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsHorizontallyResizableHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsHorizontallyResizableHandle); } [Export("setHorizontallyResizable:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetHorizontallyResizable_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetHorizontallyResizable_Handle, value); } } } public virtual bool VerticallyResizable { [Export("isVerticallyResizable")] get { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selIsVerticallyResizableHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selIsVerticallyResizableHandle); } [Export("setVerticallyResizable:")] set { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_bool(base.Handle, selSetVerticallyResizable_Handle, value); } else { Messaging.void_objc_msgSendSuper_bool(base.SuperHandle, selSetVerticallyResizable_Handle, value); } } } public NSTextPredicate TextShouldBeginEditing { get { return EnsureNSTextDelegate().textShouldBeginEditing; } set { EnsureNSTextDelegate().textShouldBeginEditing = value; } } public NSTextPredicate TextShouldEndEditing { get { return EnsureNSTextDelegate().textShouldEndEditing; } set { EnsureNSTextDelegate().textShouldEndEditing = value; } } public event EventHandler TextDidBeginEditing { add { _NSTextDelegate nSTextDelegate = EnsureNSTextDelegate(); nSTextDelegate.textDidBeginEditing = (EventHandler)System.Delegate.Combine(nSTextDelegate.textDidBeginEditing, value); } remove { _NSTextDelegate nSTextDelegate = EnsureNSTextDelegate(); nSTextDelegate.textDidBeginEditing = (EventHandler)System.Delegate.Remove(nSTextDelegate.textDidBeginEditing, value); } } public event EventHandler TextDidEndEditing { add { _NSTextDelegate nSTextDelegate = EnsureNSTextDelegate(); nSTextDelegate.textDidEndEditing = (EventHandler)System.Delegate.Combine(nSTextDelegate.textDidEndEditing, value); } remove { _NSTextDelegate nSTextDelegate = EnsureNSTextDelegate(); nSTextDelegate.textDidEndEditing = (EventHandler)System.Delegate.Remove(nSTextDelegate.textDidEndEditing, value); } } public event EventHandler TextDidChange { add { _NSTextDelegate nSTextDelegate = EnsureNSTextDelegate(); nSTextDelegate.textDidChange = (EventHandler)System.Delegate.Combine(nSTextDelegate.textDidChange, value); } remove { _NSTextDelegate nSTextDelegate = EnsureNSTextDelegate(); nSTextDelegate.textDidChange = (EventHandler)System.Delegate.Remove(nSTextDelegate.textDidChange, value); } } [EditorBrowsable(EditorBrowsableState.Advanced)] [Export("init")] public NSText() : base(NSObjectFlag.Empty) { if (IsDirectBinding) { base.Handle = Messaging.IntPtr_objc_msgSend(base.Handle, Selector.Init); } else { base.Handle = Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, Selector.Init); } } [EditorBrowsable(EditorBrowsableState.Advanced)] [Export("initWithCoder:")] public NSText(NSCoder coder) : base(NSObjectFlag.Empty) { if (IsDirectBinding) { base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, Selector.InitWithCoder, coder.Handle); } else { base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, Selector.InitWithCoder, coder.Handle); } } [EditorBrowsable(EditorBrowsableState.Advanced)] public NSText(NSObjectFlag t) : base(t) { } [EditorBrowsable(EditorBrowsableState.Advanced)] public NSText(IntPtr handle) : base(handle) { } [Export("initWithFrame:")] public NSText(CGRect frameRect) : base(NSObjectFlag.Empty) { NSApplication.EnsureUIThread(); if (IsDirectBinding) { base.Handle = Messaging.IntPtr_objc_msgSend_CGRect(base.Handle, selInitWithFrame_Handle, frameRect); } else { base.Handle = Messaging.IntPtr_objc_msgSendSuper_CGRect(base.SuperHandle, selInitWithFrame_Handle, frameRect); } } [Export("replaceCharactersInRange:withString:")] public virtual void Replace(NSRange range, string aString) { NSApplication.EnsureUIThread(); if (aString == null) { throw new ArgumentNullException("aString"); } IntPtr intPtr = NSString.CreateNative(aString); if (IsDirectBinding) { Messaging.void_objc_msgSend_NSRange_IntPtr(base.Handle, selReplaceCharactersInRangeWithString_Handle, range, intPtr); } else { Messaging.void_objc_msgSendSuper_NSRange_IntPtr(base.SuperHandle, selReplaceCharactersInRangeWithString_Handle, range, intPtr); } NSString.ReleaseNative(intPtr); } [Export("replaceCharactersInRange:withRTF:")] public virtual void ReplaceWithRtf(NSRange range, NSData rtfData) { NSApplication.EnsureUIThread(); if (rtfData == null) { throw new ArgumentNullException("rtfData"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_NSRange_IntPtr(base.Handle, selReplaceCharactersInRangeWithRTF_Handle, range, rtfData.Handle); } else { Messaging.void_objc_msgSendSuper_NSRange_IntPtr(base.SuperHandle, selReplaceCharactersInRangeWithRTF_Handle, range, rtfData.Handle); } } [Export("replaceCharactersInRange:withRTFD:")] public virtual void ReplaceWithRtfd(NSRange range, NSData rtfdData) { NSApplication.EnsureUIThread(); if (rtfdData == null) { throw new ArgumentNullException("rtfdData"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_NSRange_IntPtr(base.Handle, selReplaceCharactersInRangeWithRTFD_Handle, range, rtfdData.Handle); } else { Messaging.void_objc_msgSendSuper_NSRange_IntPtr(base.SuperHandle, selReplaceCharactersInRangeWithRTFD_Handle, range, rtfdData.Handle); } } [Export("RTFFromRange:")] public virtual NSData RtfFromRange(NSRange range) { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return (NSData)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_NSRange(base.Handle, selRTFFromRange_Handle, range)); } return (NSData)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_NSRange(base.SuperHandle, selRTFFromRange_Handle, range)); } [Export("RTFDFromRange:")] public virtual NSData RtfdFromRange(NSRange range) { NSApplication.EnsureUIThread(); if (IsDirectBinding) { return (NSData)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_NSRange(base.Handle, selRTFDFromRange_Handle, range)); } return (NSData)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_NSRange(base.SuperHandle, selRTFDFromRange_Handle, range)); } [Export("writeRTFDToFile:atomically:")] public virtual bool WriteRtfd(string path, bool atomically) { NSApplication.EnsureUIThread(); if (path == null) { throw new ArgumentNullException("path"); } IntPtr intPtr = NSString.CreateNative(path); bool result = (!IsDirectBinding) ? Messaging.bool_objc_msgSendSuper_IntPtr_bool(base.SuperHandle, selWriteRTFDToFileAtomically_Handle, intPtr, atomically) : Messaging.bool_objc_msgSend_IntPtr_bool(base.Handle, selWriteRTFDToFileAtomically_Handle, intPtr, atomically); NSString.ReleaseNative(intPtr); return result; } [Export("readRTFDFromFile:")] public virtual bool FromRtfdFile(string path) { NSApplication.EnsureUIThread(); if (path == null) { throw new ArgumentNullException("path"); } IntPtr intPtr = NSString.CreateNative(path); bool result = (!IsDirectBinding) ? Messaging.bool_objc_msgSendSuper_IntPtr(base.SuperHandle, selReadRTFDFromFile_Handle, intPtr) : Messaging.bool_objc_msgSend_IntPtr(base.Handle, selReadRTFDFromFile_Handle, intPtr); NSString.ReleaseNative(intPtr); return result; } [Export("scrollRangeToVisible:")] public virtual void ScrollRangeToVisible(NSRange range) { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend_NSRange(base.Handle, selScrollRangeToVisible_Handle, range); } else { Messaging.void_objc_msgSendSuper_NSRange(base.SuperHandle, selScrollRangeToVisible_Handle, range); } } [Export("setTextColor:range:")] public virtual void SetTextColor(NSColor color, NSRange range) { NSApplication.EnsureUIThread(); if (color == null) { throw new ArgumentNullException("color"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr_NSRange(base.Handle, selSetTextColorRange_Handle, color.Handle, range); } else { Messaging.void_objc_msgSendSuper_IntPtr_NSRange(base.SuperHandle, selSetTextColorRange_Handle, color.Handle, range); } } [Export("setFont:range:")] public virtual void SetFont(NSFont font, NSRange range) { NSApplication.EnsureUIThread(); if (font == null) { throw new ArgumentNullException("font"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr_NSRange(base.Handle, selSetFontRange_Handle, font.Handle, range); } else { Messaging.void_objc_msgSendSuper_IntPtr_NSRange(base.SuperHandle, selSetFontRange_Handle, font.Handle, range); } } [Export("sizeToFit")] public virtual void SizeToFit() { NSApplication.EnsureUIThread(); if (IsDirectBinding) { Messaging.void_objc_msgSend(base.Handle, selSizeToFitHandle); } else { Messaging.void_objc_msgSendSuper(base.SuperHandle, selSizeToFitHandle); } } [Export("copy:")] public virtual void Copy(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selCopy_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selCopy_Handle, sender.Handle); } } [Export("copyFont:")] public virtual void CopyFont(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selCopyFont_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selCopyFont_Handle, sender.Handle); } } [Export("copyRuler:")] public virtual void CopyRuler(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selCopyRuler_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selCopyRuler_Handle, sender.Handle); } } [Export("cut:")] public virtual void Cut(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selCut_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selCut_Handle, sender.Handle); } } [Export("delete:")] public virtual void Delete(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selDelete_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selDelete_Handle, sender.Handle); } } [Export("paste:")] public virtual void Paste(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selPaste_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selPaste_Handle, sender.Handle); } } [Export("pasteFont:")] public virtual void PasteFont(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selPasteFont_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selPasteFont_Handle, sender.Handle); } } [Export("pasteRuler:")] public virtual void PasteRuler(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selPasteRuler_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selPasteRuler_Handle, sender.Handle); } } [Export("selectAll:")] public virtual void SelectAll(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSelectAll_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSelectAll_Handle, sender.Handle); } } [Export("changeFont:")] public virtual void ChangeFont(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selChangeFont_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selChangeFont_Handle, sender.Handle); } } [Export("alignLeft:")] public virtual void AlignLeft(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selAlignLeft_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selAlignLeft_Handle, sender.Handle); } } [Export("alignRight:")] public virtual void AlignRight(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selAlignRight_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selAlignRight_Handle, sender.Handle); } } [Export("alignCenter:")] public virtual void AlignCenter(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selAlignCenter_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selAlignCenter_Handle, sender.Handle); } } [Export("subscript:")] public virtual void Subscript(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSubscript_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSubscript_Handle, sender.Handle); } } [Export("superscript:")] public virtual void Superscript(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selSuperscript_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSuperscript_Handle, sender.Handle); } } [Export("underline:")] public virtual void Underline(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selUnderline_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selUnderline_Handle, sender.Handle); } } [Export("unscript:")] public virtual void Unscript(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selUnscript_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selUnscript_Handle, sender.Handle); } } [Export("showGuessPanel:")] public virtual void ShowGuessPanel(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selShowGuessPanel_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selShowGuessPanel_Handle, sender.Handle); } } [Export("checkSpelling:")] public virtual void CheckSpelling(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selCheckSpelling_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selCheckSpelling_Handle, sender.Handle); } } [Export("toggleRuler:")] public virtual void ToggleRuler(NSObject sender) { NSApplication.EnsureUIThread(); if (sender == null) { throw new ArgumentNullException("sender"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr(base.Handle, selToggleRuler_Handle, sender.Handle); } else { Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selToggleRuler_Handle, sender.Handle); } } private _NSTextDelegate EnsureNSTextDelegate() { NSTextDelegate nSTextDelegate = Delegate; if (nSTextDelegate == null || !(nSTextDelegate is _NSTextDelegate)) { nSTextDelegate = (Delegate = new _NSTextDelegate()); } return (_NSTextDelegate)nSTextDelegate; } protected override void Dispose(bool disposing) { base.Dispose(disposing); if (base.Handle == IntPtr.Zero) { __mt_WeakDelegate_var = null; __mt_BackgroundColor_var = null; __mt_Font_var = null; __mt_TextColor_var = null; } } } }