using CPF.Mac.ObjCRuntime; using System; using System.ComponentModel; namespace CPF.Mac.Foundation { [Register("NSAppleEventDescriptor", true)] public class NSAppleEventDescriptor : NSObject { private static readonly IntPtr selNullDescriptorHandle = Selector.GetHandle("nullDescriptor"); private static readonly IntPtr selListDescriptorHandle = Selector.GetHandle("listDescriptor"); private static readonly IntPtr selRecordDescriptorHandle = Selector.GetHandle("recordDescriptor"); private static readonly IntPtr selDataHandle = Selector.GetHandle("data"); private static readonly IntPtr selBooleanValueHandle = Selector.GetHandle("booleanValue"); private static readonly IntPtr selInt32ValueHandle = Selector.GetHandle("int32Value"); private static readonly IntPtr selTypeCodeValueHandle = Selector.GetHandle("typeCodeValue"); private static readonly IntPtr selStringValueHandle = Selector.GetHandle("stringValue"); private static readonly IntPtr selEventClassHandle = Selector.GetHandle("eventClass"); private static readonly IntPtr selEventIDHandle = Selector.GetHandle("eventID"); private static readonly IntPtr selNumberOfItemsHandle = Selector.GetHandle("numberOfItems"); private static readonly IntPtr selDescriptorWithBoolean_Handle = Selector.GetHandle("descriptorWithBoolean:"); private static readonly IntPtr selDescriptorWithEnumCode_Handle = Selector.GetHandle("descriptorWithEnumCode:"); private static readonly IntPtr selDescriptorWithInt32_Handle = Selector.GetHandle("descriptorWithInt32:"); private static readonly IntPtr selDescriptorWithTypeCode_Handle = Selector.GetHandle("descriptorWithTypeCode:"); private static readonly IntPtr selDescriptorWithString_Handle = Selector.GetHandle("descriptorWithString:"); private static readonly IntPtr selInitListDescriptorHandle = Selector.GetHandle("initListDescriptor"); private static readonly IntPtr selInitRecordDescriptorHandle = Selector.GetHandle("initRecordDescriptor"); private static readonly IntPtr selEnumCodeValueHandle = Selector.GetHandle("enumCodeValue"); private static readonly IntPtr selSetParamDescriptorForKeyword_Handle = Selector.GetHandle("setParamDescriptor:forKeyword:"); private static readonly IntPtr selParamDescriptorForKeyword_Handle = Selector.GetHandle("paramDescriptorForKeyword:"); private static readonly IntPtr selRemoveParamDescriptorWithKeyword_Handle = Selector.GetHandle("removeParamDescriptorWithKeyword:"); private static readonly IntPtr selSetAttributeDescriptorForKeyword_Handle = Selector.GetHandle("setAttributeDescriptor:forKeyword:"); private static readonly IntPtr selAttributeDescriptorForKeyword_Handle = Selector.GetHandle("attributeDescriptorForKeyword:"); private static readonly IntPtr selInsertDescriptorAtIndex_Handle = Selector.GetHandle("insertDescriptor:atIndex:"); private static readonly IntPtr selDescriptorAtIndex_Handle = Selector.GetHandle("descriptorAtIndex:"); private static readonly IntPtr selRemoveDescriptorAtIndex_Handle = Selector.GetHandle("removeDescriptorAtIndex:"); private static readonly IntPtr selSetDescriptorForKeyword_Handle = Selector.GetHandle("setDescriptor:forKeyword:"); private static readonly IntPtr selDescriptorForKeyword_Handle = Selector.GetHandle("descriptorForKeyword:"); private static readonly IntPtr selRemoveDescriptorWithKeyword_Handle = Selector.GetHandle("removeDescriptorWithKeyword:"); private static readonly IntPtr selKeywordForDescriptorAtIndex_Handle = Selector.GetHandle("keywordForDescriptorAtIndex:"); private static readonly IntPtr class_ptr = Class.GetHandle("NSAppleEventDescriptor"); private static object __mt_NullDescriptor_var_static; private static object __mt_ListDescriptor_var_static; private static object __mt_RecordDescriptor_var_static; private object __mt_Data_var; public override IntPtr ClassHandle => class_ptr; public static NSAppleEventDescriptor NullDescriptor { [Export("nullDescriptor")] get { return (NSAppleEventDescriptor)(__mt_NullDescriptor_var_static = (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selNullDescriptorHandle))); } } public static NSAppleEventDescriptor ListDescriptor { [Export("listDescriptor")] get { return (NSAppleEventDescriptor)(__mt_ListDescriptor_var_static = (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selListDescriptorHandle))); } } public static NSAppleEventDescriptor RecordDescriptor { [Export("recordDescriptor")] get { return (NSAppleEventDescriptor)(__mt_RecordDescriptor_var_static = (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(class_ptr, selRecordDescriptorHandle))); } } public virtual NSData Data { [Export("data")] get { return (NSData)(__mt_Data_var = ((!IsDirectBinding) ? ((NSData)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selDataHandle))) : ((NSData)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selDataHandle))))); } } public virtual bool BooleanValue { [Export("booleanValue")] get { if (IsDirectBinding) { return Messaging.bool_objc_msgSend(base.Handle, selBooleanValueHandle); } return Messaging.bool_objc_msgSendSuper(base.SuperHandle, selBooleanValueHandle); } } public virtual int Int32Value { [Export("int32Value")] get { if (IsDirectBinding) { return Messaging.int_objc_msgSend(base.Handle, selInt32ValueHandle); } return Messaging.int_objc_msgSendSuper(base.SuperHandle, selInt32ValueHandle); } } public virtual uint TypeCodeValue { [Export("typeCodeValue")] get { if (IsDirectBinding) { return Messaging.UInt32_objc_msgSend(base.Handle, selTypeCodeValueHandle); } return Messaging.UInt32_objc_msgSendSuper(base.SuperHandle, selTypeCodeValueHandle); } } public virtual string StringValue { [Export("stringValue")] get { if (IsDirectBinding) { return NSString.FromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selStringValueHandle)); } return NSString.FromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selStringValueHandle)); } } public virtual AEEventClass EventClass { [Export("eventClass")] get { if (IsDirectBinding) { return (AEEventClass)Messaging.UInt32_objc_msgSend(base.Handle, selEventClassHandle); } return (AEEventClass)Messaging.UInt32_objc_msgSendSuper(base.SuperHandle, selEventClassHandle); } } public virtual AEEventID EventID { [Export("eventID")] get { if (IsDirectBinding) { return (AEEventID)Messaging.UInt32_objc_msgSend(base.Handle, selEventIDHandle); } return (AEEventID)Messaging.UInt32_objc_msgSendSuper(base.SuperHandle, selEventIDHandle); } } public virtual int NumberOfItems { [Export("numberOfItems")] get { if (IsDirectBinding) { return Messaging.int_objc_msgSend(base.Handle, selNumberOfItemsHandle); } return Messaging.int_objc_msgSendSuper(base.SuperHandle, selNumberOfItemsHandle); } } [EditorBrowsable(EditorBrowsableState.Advanced)] [Export("init")] public NSAppleEventDescriptor() : 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 NSAppleEventDescriptor(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 NSAppleEventDescriptor(NSObjectFlag t) : base(t) { } [EditorBrowsable(EditorBrowsableState.Advanced)] public NSAppleEventDescriptor(IntPtr handle) : base(handle) { } [Export("descriptorWithBoolean:")] public static NSAppleEventDescriptor DescriptorWithBoolean(bool boolean) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_bool(class_ptr, selDescriptorWithBoolean_Handle, boolean)); } [Export("descriptorWithEnumCode:")] public static NSAppleEventDescriptor DescriptorWithEnumCode(uint enumerator) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt32(class_ptr, selDescriptorWithEnumCode_Handle, enumerator)); } [Export("descriptorWithInt32:")] public static NSAppleEventDescriptor DescriptorWithInt32(int signedInt) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_int(class_ptr, selDescriptorWithInt32_Handle, signedInt)); } [Export("descriptorWithTypeCode:")] public static NSAppleEventDescriptor DescriptorWithTypeCode(uint typeCode) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt32(class_ptr, selDescriptorWithTypeCode_Handle, typeCode)); } [Export("descriptorWithString:")] public static NSAppleEventDescriptor DescriptorWithString(string str) { if (str == null) { throw new ArgumentNullException("str"); } IntPtr intPtr = NSString.CreateNative(str); NSAppleEventDescriptor result = (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selDescriptorWithString_Handle, intPtr)); NSString.ReleaseNative(intPtr); return result; } [Export("initListDescriptor")] public virtual NSObject InitListDescriptor() { if (IsDirectBinding) { return Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selInitListDescriptorHandle)); } return Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selInitListDescriptorHandle)); } [Export("initRecordDescriptor")] public virtual NSObject InitRecordDescriptor() { if (IsDirectBinding) { return Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selInitRecordDescriptorHandle)); } return Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selInitRecordDescriptorHandle)); } [Export("enumCodeValue")] public virtual uint EnumCodeValue() { if (IsDirectBinding) { return Messaging.UInt32_objc_msgSend(base.Handle, selEnumCodeValueHandle); } return Messaging.UInt32_objc_msgSendSuper(base.SuperHandle, selEnumCodeValueHandle); } [Export("setParamDescriptor:forKeyword:")] public virtual void SetParamDescriptorforKeyword(NSAppleEventDescriptor descriptor, uint keyword) { if (descriptor == null) { throw new ArgumentNullException("descriptor"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr_UInt32(base.Handle, selSetParamDescriptorForKeyword_Handle, descriptor.Handle, keyword); } else { Messaging.void_objc_msgSendSuper_IntPtr_UInt32(base.SuperHandle, selSetParamDescriptorForKeyword_Handle, descriptor.Handle, keyword); } } [Export("paramDescriptorForKeyword:")] public virtual NSAppleEventDescriptor ParamDescriptorForKeyword(uint keyword) { if (IsDirectBinding) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt32(base.Handle, selParamDescriptorForKeyword_Handle, keyword)); } return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_UInt32(base.SuperHandle, selParamDescriptorForKeyword_Handle, keyword)); } [Export("removeParamDescriptorWithKeyword:")] public virtual void RemoveParamDescriptorWithKeyword(uint keyword) { if (IsDirectBinding) { Messaging.void_objc_msgSend_UInt32(base.Handle, selRemoveParamDescriptorWithKeyword_Handle, keyword); } else { Messaging.void_objc_msgSendSuper_UInt32(base.SuperHandle, selRemoveParamDescriptorWithKeyword_Handle, keyword); } } [Export("setAttributeDescriptor:forKeyword:")] public virtual void SetAttributeDescriptorforKeyword(NSAppleEventDescriptor descriptor, uint keyword) { if (descriptor == null) { throw new ArgumentNullException("descriptor"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr_UInt32(base.Handle, selSetAttributeDescriptorForKeyword_Handle, descriptor.Handle, keyword); } else { Messaging.void_objc_msgSendSuper_IntPtr_UInt32(base.SuperHandle, selSetAttributeDescriptorForKeyword_Handle, descriptor.Handle, keyword); } } [Export("attributeDescriptorForKeyword:")] public virtual NSAppleEventDescriptor AttributeDescriptorForKeyword(uint keyword) { if (IsDirectBinding) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt32(base.Handle, selAttributeDescriptorForKeyword_Handle, keyword)); } return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_UInt32(base.SuperHandle, selAttributeDescriptorForKeyword_Handle, keyword)); } [Export("insertDescriptor:atIndex:")] public virtual void InsertDescriptoratIndex(NSAppleEventDescriptor descriptor, int index) { if (descriptor == null) { throw new ArgumentNullException("descriptor"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr_int(base.Handle, selInsertDescriptorAtIndex_Handle, descriptor.Handle, index); } else { Messaging.void_objc_msgSendSuper_IntPtr_int(base.SuperHandle, selInsertDescriptorAtIndex_Handle, descriptor.Handle, index); } } [Export("descriptorAtIndex:")] public virtual NSAppleEventDescriptor DescriptorAtIndex(int index) { if (IsDirectBinding) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_int(base.Handle, selDescriptorAtIndex_Handle, index)); } return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_int(base.SuperHandle, selDescriptorAtIndex_Handle, index)); } [Export("removeDescriptorAtIndex:")] public virtual void RemoveDescriptorAtIndex(int index) { if (IsDirectBinding) { Messaging.void_objc_msgSend_int(base.Handle, selRemoveDescriptorAtIndex_Handle, index); } else { Messaging.void_objc_msgSendSuper_int(base.SuperHandle, selRemoveDescriptorAtIndex_Handle, index); } } [Export("setDescriptor:forKeyword:")] public virtual void SetDescriptorforKeyword(NSAppleEventDescriptor descriptor, uint keyword) { if (descriptor == null) { throw new ArgumentNullException("descriptor"); } if (IsDirectBinding) { Messaging.void_objc_msgSend_IntPtr_UInt32(base.Handle, selSetDescriptorForKeyword_Handle, descriptor.Handle, keyword); } else { Messaging.void_objc_msgSendSuper_IntPtr_UInt32(base.SuperHandle, selSetDescriptorForKeyword_Handle, descriptor.Handle, keyword); } } [Export("descriptorForKeyword:")] public virtual NSAppleEventDescriptor DescriptorForKeyword(uint keyword) { if (IsDirectBinding) { return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_UInt32(base.Handle, selDescriptorForKeyword_Handle, keyword)); } return (NSAppleEventDescriptor)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_UInt32(base.SuperHandle, selDescriptorForKeyword_Handle, keyword)); } [Export("removeDescriptorWithKeyword:")] public virtual void RemoveDescriptorWithKeyword(uint keyword) { if (IsDirectBinding) { Messaging.void_objc_msgSend_UInt32(base.Handle, selRemoveDescriptorWithKeyword_Handle, keyword); } else { Messaging.void_objc_msgSendSuper_UInt32(base.SuperHandle, selRemoveDescriptorWithKeyword_Handle, keyword); } } [Export("keywordForDescriptorAtIndex:")] public virtual uint KeywordForDescriptorAtIndex(int index) { if (IsDirectBinding) { return Messaging.UInt32_objc_msgSend_int(base.Handle, selKeywordForDescriptorAtIndex_Handle, index); } return Messaging.UInt32_objc_msgSendSuper_int(base.SuperHandle, selKeywordForDescriptorAtIndex_Handle, index); } protected override void Dispose(bool disposing) { base.Dispose(disposing); if (base.Handle == IntPtr.Zero) { __mt_Data_var = null; } } } }