public static string GetString(this NSTextView self) { var selector = new ObjCRuntime.Selector("string"); var handle = LibObjc.IntPtr_objc_msgSend(self.Handle, selector.Handle); return(handle != IntPtr.Zero ? NSString.FromHandle(handle) : (string)null); }
//NSClassFromString //NSSelectorFromString //NSProtocolFromString #if MONOMAC public static CGSize SizeThatFits(this NSControl self, CGSize proposedSize) { var selector = new ObjCRuntime.Selector("sizeThatFits:"); var size = ObjCRuntime.Messaging.CGSize_objc_msgSend_CGSize(self.Handle, selector.Handle, proposedSize); return(size); }
internal NativeMethodBuilder (MethodInfo minfo) { ExportAttribute ea = (ExportAttribute) Attribute.GetCustomAttribute (minfo.GetBaseDefinition (), typeof (ExportAttribute)); ParameterInfo [] parms = minfo.GetParameters (); if (ea == null) throw new ArgumentException ("MethodInfo does not have a export attribute"); rettype = ConvertReturnType (minfo.ReturnType); // FIXME: We should detect if this is in a bound assembly or not and only alloc if needed Selector = new Selector (ea.Selector ?? minfo.Name, true).Handle; Signature = string.Format ("{0}@:", TypeConverter.ToNative (rettype)); ParameterTypes = new Type [2 + parms.Length]; ParameterTypes [0] = typeof (NSObject); ParameterTypes [1] = typeof (Selector); for (int i = 0; i < parms.Length; i++) { if (parms [i].ParameterType.IsByRef && (parms[i].ParameterType.IsSubclassOf (typeof (NSObject)) || parms[i].ParameterType == typeof (NSObject))) ParameterTypes [i + 2] = typeof (IntPtr).MakeByRefType (); else ParameterTypes [i + 2] = parms [i].ParameterType; Signature += TypeConverter.ToNative (parms [i].ParameterType); } DelegateType = CreateDelegateType (rettype, ParameterTypes); this.minfo = minfo; }
internal NativeMethodBuilder(MethodInfo minfo) { ExportAttribute ea = (ExportAttribute) Attribute.GetCustomAttribute (minfo.GetBaseDefinition (), typeof (ExportAttribute)); if (ea == null) throw new ArgumentException ("MethodInfo does not have a export attribute"); parms = minfo.GetParameters (); rettype = ConvertReturnType (minfo.ReturnType); // FIXME: We should detect if this is in a bound assembly or not and only alloc if needed Selector = new Selector (ea.Selector ?? minfo.Name, true).Handle; Signature = string.Format ("{0}@:", TypeConverter.ToNative (rettype)); ParameterTypes = new Type [2 + parms.Length]; ParameterTypes [0] = typeof (NSObject); ParameterTypes [1] = typeof (Selector); for (int i = 0; i < parms.Length; i++) { if (parms [i].ParameterType.IsByRef && (parms[i].ParameterType.GetElementType ().IsSubclassOf (typeof (NSObject)) || parms[i].ParameterType.GetElementType () == typeof (NSObject))) ParameterTypes [i + 2] = typeof (IntPtr).MakeByRefType (); else ParameterTypes [i + 2] = parms [i].ParameterType; // The TypeConverter will emit a ^@ for a byref type that is a NSObject or NSObject subclass in this case // If we passed the ParameterTypes [i+2] as would be more logical we would emit a ^^v for that case, which // while currently acceptible isn't representative of what obj-c wants. Signature += TypeConverter.ToNative (parms [i].ParameterType); } DelegateType = CreateDelegateType (rettype, ParameterTypes); this.minfo = minfo; }
internal NativeConstructorBuilder(ConstructorInfo cinfo) { ExportAttribute ea = (ExportAttribute) Attribute.GetCustomAttribute (cinfo, typeof (ExportAttribute)); ParameterInfo [] parms = cinfo.GetParameters (); if (ea == null && parms.Length > 0) throw new ArgumentException ("ConstructorInfo does not have a export attribute"); if (ea == null) Selector = selInit; else Selector = new Selector (ea.Selector, true).Handle; Signature = "@@:"; ParameterTypes = new Type [2 + parms.Length]; ParameterTypes [0] = typeof (IntPtr); ParameterTypes [1] = typeof (Selector); for (int i = 0; i < parms.Length; i++) { ParameterTypes [i + 2] = parms [i].ParameterType; Signature += TypeConverter.ToNative (parms [i].ParameterType); } DelegateType = CreateDelegateType (typeof (IntPtr), ParameterTypes); this.cinfo = cinfo; }
public static void WriteObject(this NSPasteboard pboard, NSObject pasteboardWriting) { // NOTE: pasteboardWriting must conform to NSPasteboardWriting protocol var selector = new ObjCRuntime.Selector("writeObjects:"); var array = NSArray.FromNSObjects(pasteboardWriting); ObjCRuntime.Messaging.void_objc_msgSend_IntPtr(pboard.Handle, selector.Handle, array.Handle); }
public static NSWindow[] OrderedWindows(this NSApplication self) { var selector = new ObjCRuntime.Selector("orderedWindows"); var ptr = LibObjc.IntPtr_objc_msgSend(self.Handle, selector.Handle); var array = NSArray.ArrayFromHandle <NSWindow>(ptr); return(array); }
public override void WillFinishLaunching(NSNotification notification) { var selector = new MonoMac.ObjCRuntime.Selector("handleGetURLEvent:withReplyEvent:"); NSAppleEventManager.SharedAppleEventManager.SetEventHandler(this, selector, AEEventClass.Internet, AEEventID.GetUrl); }
public static NSData GetData(this NSAttributedString astr, NSRange range, NSDictionary options, out NSError error) { var selector = new ObjCRuntime.Selector("dataFromRange:documentAttributes:error:"); var e = new NSError(); var h = ObjCRuntime.Messaging.IntPtr_objc_msgSend_NSRange_IntPtr_IntPtr_int(astr.Handle, selector.Handle, range, options.Handle, e.Handle, 0); error = null; return(h.AsNSObject <NSData>()); }
static bool isSelectorExcludedFromWebScript(Selector sel) { switch (sel.Name) { case "clicked:": case "logMessage:": case "updateMarker:": return false; } return true; }
//[Export ("initWithContentRect:styleMask:backing:defer:"), CompilerGenerated] internal MonoWindow(NSRect contentRect, NSWindowStyle aStyle, NSBackingStore bufferingType, bool deferCreation, XplatUICocoa driver) : base(contentRect, aStyle, bufferingType, deferCreation) { this.driver = driver; // Disable tabbing on Sierra until we properly support it var setTabbingModeSelector = new ObjCRuntime.Selector("setTabbingMode:"); if (this.RespondsToSelector(setTabbingModeSelector)) { this.SetValueForKey(NSNumber.FromInt32(2), new NSString("tabbingMode")); } }
static string webScriptNameForSelector(Selector sel) { switch (sel.Name) { case "clicked:": return "clicked"; case "logMessage:": return "logMessage"; case "updateMarker:": return "updateMarker"; } return ""; }
internal NativeConstructorBuilder (ConstructorInfo cinfo) { ExportAttribute ea = (ExportAttribute) Attribute.GetCustomAttribute (cinfo, typeof (ExportAttribute)); Parameters = cinfo.GetParameters (); if (ea == null && Parameters.Length > 0) throw new ArgumentException ("ConstructorInfo does not have a export attribute"); if (ea == null) Selector = selInit; else Selector = new Selector (ea.Selector, true).Handle; Signature = "@@:"; ConvertParameters (Parameters, true, false); DelegateType = CreateDelegateType (typeof (IntPtr), ParameterTypes); this.cinfo = cinfo; }
internal NativeMethodBuilder (MethodInfo minfo, Type type, ExportAttribute ea) { if (ea == null) throw new ArgumentException ("MethodInfo does not have a export attribute"); if (minfo.DeclaringType.IsGenericType) throw new ArgumentException ("MethodInfo cannot be in a generic type"); Parameters = minfo.GetParameters (); rettype = ConvertReturnType (minfo.ReturnType); // FIXME: We should detect if this is in a bound assembly or not and only alloc if needed Selector = new Selector (ea.Selector ?? minfo.Name, true).Handle; Signature = string.Format ("{0}@:", TypeConverter.ToNative (rettype)); ConvertParameters (Parameters, minfo.IsStatic, isstret); DelegateType = CreateDelegateType (rettype, ParameterTypes); this.minfo = minfo; this.type = type; }
public void BeginInvokeOnMainThread (Selector sel, NSObject obj) { InvokeOnMainThread (sel, obj, false); }
public virtual bool RespondsToSelector(Selector sel) { #if MONOMAC if (IsDirectBinding) { return Messaging.bool_objc_msgSend_intptr (this.Handle, selRespondsToSelectorHandle, sel.Handle); } else { return Messaging.bool_objc_msgSendSuper_intptr (this.SuperHandle, selRespondsToSelectorHandle, sel.Handle); } #else if (IsDirectBinding) { return Messaging.bool_objc_msgSend_intptr (this.Handle, Selector.GetHandle (selRespondsToSelector), sel.Handle); } else { return Messaging.bool_objc_msgSendSuper_intptr (this.SuperHandle, Selector.GetHandle (selRespondsToSelector), sel.Handle); } #endif }
// provider must implement NSPasteboardItemDataProvider public static void SetDataProviderForTypes(this NSPasteboardItem item, NSObject provider, string[] types) { var sel = new ObjCRuntime.Selector("setDataProvider:forTypes:"); var array = NSArray.FromStrings(types); var ok = LibObjc.bool_objc_msgSend_IntPtr_IntPtr(item.Handle, sel.Handle, provider.Handle, array.Handle); }
public static string WebScriptNameForSelector(MonoMac.ObjCRuntime.Selector aSelector) { return(aSelector.Name.Replace(":", "")); }
public static bool AllowsUndo(this NSTextView self) { var selector = new ObjCRuntime.Selector("allowsUndo"); return(LibObjc.bool_objc_msgSend(self.Handle, selector.Handle)); }
public static IntPtr GetMethod(this Class cls, Selector selector) { return class_getClassMethod (cls.Handle, selector.Handle); }
public MacCommand(string id, string text, string selector) { ID = id; MenuText = ToolBarText = text; Selector = new Selector(selector); }
public virtual void DoesNotRecognizeSelector(Selector sel) { Messaging.void_objc_msgSendSuper_intptr (SuperHandle, Selector.DoesNotRecognizeSelector, sel.Handle); }
public virtual void DoesNotRecognizeSelector (Selector sel) { if (sel == null) throw new ArgumentNullException ("sel"); Console.WriteLine ("CRITICAL WARNING: [{0} {1}] is not recognized", this.GetType (), sel.Name); Messaging.void_objc_msgSendSuper_intptr (SuperHandle, selDoesNotRecognizeSelector, sel.Handle); }
public virtual bool RespondsToSelector (Selector sel) { if (sel == null) throw new ArgumentNullException ("sel"); if (IsDirectBinding) { return Messaging.bool_objc_msgSend_intptr (Handle, selRespondsToSelector, sel.Handle); } else { return Messaging.bool_objc_msgSendSuper_intptr (SuperHandle, selRespondsToSelector, sel.Handle); } }
public virtual void DoesNotRecognizeSelector(Selector sel) { #if MONOMAC Messaging.void_objc_msgSendSuper_intptr (SuperHandle, Selector.DoesNotRecognizeSelectorHandle, sel.Handle); #else Messaging.void_objc_msgSendSuper_intptr (SuperHandle, Selector.GetHandle (Selector.DoesNotRecognizeSelector), sel.Handle); #endif }
public override void WillFinishLaunching (NSNotification notification) { var selector = new MonoMac.ObjCRuntime.Selector ("handleGetURLEvent:withReplyEvent:"); NSAppleEventManager.SharedAppleEventManager.SetEventHandler (this, selector, AEEventClass.Internet, AEEventID.GetUrl); }
public MacButtonAction(string id, string text, string selector) : base(id, text) { this.Selector = new Selector(selector); }
private void InvokeOnMainThread(Selector sel, NSObject obj, bool wait) { #if MONOMAC Messaging.void_objc_msgSend_intptr_intptr_bool (this.Handle, Selector.PerformSelectorOnMainThreadWithObjectWaitUntilDoneHandle, sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, wait); #else Messaging.void_objc_msgSend_intptr_intptr_bool (this.Handle, Selector.GetHandle (Selector.PerformSelectorOnMainThreadWithObjectWaitUntilDone), sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, wait); #endif }
public void InvokeOnMainThread (Selector sel, NSObject obj) { InvokeOnMainThread (sel, obj, true); }
public virtual bool RespondsToSelector (Selector sel) { if (IsDirectBinding) { return Messaging.bool_objc_msgSend_intptr (Handle, selRespondsToSelector, sel.Handle); } else { return Messaging.bool_objc_msgSendSuper_intptr (SuperHandle, selRespondsToSelector, sel.Handle); } }
public static bool IsSelectorExcludedFromWebScript(MonoMac.ObjCRuntime.Selector aSelector) { return(!allowed.Contains(aSelector.Name)); }
public void AddObserver(NSObject observer, Selector aSelector, string aname, NSObject anObject) { AddObserver (observer, aSelector, new NSString (aname), anObject); }
// ------------------------------------------------------------------------------- // handleCommandSelectors // // Handle all command selectors that we can handle here // ------------------------------------------------------------------------------- private bool handleCommandSelectors(NSControl control, NSTextView textView, Selector commandSelector) { bool result = false; if (textView.RespondsToSelector (commandSelector)){ commandHandling = true; textView.PerformSelector (commandSelector,null,-1); //commandHandling = false; result = true; } return result; }
public static void SetString(this NSTextView self, NSString value) { var selector = new ObjCRuntime.Selector("setString:"); LibObjc.void_objc_msgSend_IntPtr(self.Handle, selector.Handle, value.Handle); }
public virtual void DoesNotRecognizeSelector (Selector sel) { Console.WriteLine ("CRITICAL WARNING: [{0} {1}] is not recognized", this.GetType (), sel.Name); Messaging.void_objc_msgSendSuper_intptr (SuperHandle, selDoesNotRecognizeSelector, sel.Handle); }
public static void AllowsUndo(this NSTextView self, bool value) { var selector = new ObjCRuntime.Selector("setAllowsUndo:"); LibObjc.void_objc_msgSend_Bool(self.Handle, selector.Handle, value); }
public virtual void PerformSelector (Selector sel, NSObject obj, float delay) { if (IsDirectBinding) { Messaging.void_objc_msgSend_intptr_intptr_float (this.Handle, selPerformSelectorWithObjectAfterDelay, sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, delay); } else { Messaging.void_objc_msgSendSuper_intptr_intptr_float (this.SuperHandle, selPerformSelectorWithObjectAfterDelay, sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, delay); } }
public static bool AddMethod(this Class cls, Selector selector, Delegate method, string arguments) { return class_addMethod (cls.Handle, selector.Handle, method, arguments); }
private void InvokeOnMainThread (Selector sel, NSObject obj, bool wait) { Messaging.void_objc_msgSend_intptr_intptr_bool (this.Handle, selPerformSelectorOnMainThreadWithObjectWaitUntilDone, sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, wait); }
private bool KeywordsCommandSelector(NSControl control, NSTextView textView, Selector commandSelector) { if (textView.RespondsToSelector(commandSelector)) { commandHandling = true; textView.PerformSelector(commandSelector, null, -1); return true; } return false; }
public virtual void PerformSelector(Selector sel, NSObject obj, double delay) { if (sel == null) throw new ArgumentNullException ("sel"); #if MONOMAC if (IsDirectBinding) { Messaging.void_objc_msgSend_intptr_intptr_double (this.Handle, Selector.PerformSelectorWithObjectAfterDelayHandle, sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, delay); } else { Messaging.void_objc_msgSendSuper_intptr_intptr_double (this.SuperHandle, Selector.PerformSelectorWithObjectAfterDelayHandle, sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, delay); } #else if (IsDirectBinding) { Messaging.void_objc_msgSend_intptr_intptr_double (this.Handle, Selector.GetHandle (Selector.PerformSelectorWithObjectAfterDelay), sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, delay); } else { Messaging.void_objc_msgSendSuper_intptr_intptr_double (this.SuperHandle, Selector.GetHandle (Selector.PerformSelectorWithObjectAfterDelay), sel.Handle, obj == null ? IntPtr.Zero : obj.Handle, delay); } #endif }
public static void ConnectMethod (MethodInfo method, Selector selector) { if (method == null) throw new ArgumentNullException ("method"); if (selector == null) throw new ArgumentNullException ("selector"); var type = method.DeclaringType; if (!Class.IsCustomType (type)) throw new ArgumentException ("Cannot late bind methods on core types"); var ea = new ExportAttribute (selector.Name); var klass = new Class (type); Class.RegisterMethod (method, ea, type, klass.Handle); }
public extern static void ShowAnimationEffect (NSAnimationEffect animationEffect, PointF centerLocation, SizeF size, NSObject animationDelegate, Selector didEndSelector, IntPtr contextInfo);