public PMStatusCode CreatePrinterList(out string [] printerList, out int index, out PMPrinter printer) { IntPtr array, printerHandle; var code = PMSessionCreatePrinterList(handle, out array, out index, out printerHandle); if (code != PMStatusCode.Ok) { printerList = null; printer = null; return(code); } printerList = NSArray.StringArrayFromHandle(array); CFObject.CFRelease(array); if (printerHandle != IntPtr.Zero) { // Now get the printer, we do not own it, so retain. printer = new PMPrinter(printerHandle, owns: false); } else { printer = null; } return(PMStatusCode.Ok); }
public override bool PerformDragOperation(NSDraggingInfo sender) { NSPasteboard pboard; NSDragOperation sourceDragMask; sourceDragMask = sender.DraggingSourceOperationMask; pboard = sender.DraggingPasteboard; if (Array.IndexOf(pboard.Types, NSPasteboard.NSColorType) > -1) { } else if (Array.IndexOf(pboard.Types, NSPasteboard.NSFilenamesType) > -1) { string[] files = NSArray.StringArrayFromHandle(pboard.GetPropertyListForType(NSPasteboard.NSFilenamesType).Handle); var jsonFile = files.FirstOrDefault( (p => Path.GetExtension(p) .Equals(".JSON", StringComparison.InvariantCultureIgnoreCase)) ); if (jsonFile != null) { this.OpenAnimationFile(jsonFile); } } return(true); }
public static string[] GetStringArray(IDictionary <NSObject, NSObject> dictionary, NSObject key) { var value = dictionary [key]; if (value == null) { return(new string [0]); } return(NSArray.StringArrayFromHandle(value.Handle)); }
public virtual string[] Playlist() { if (IsDirectBinding) { return(NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend(this.Handle, Selector.GetHandle("playlist")))); } else { return(NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper(this.SuperHandle, Selector.GetHandle("playlist")))); } }
public virtual string[] AvailableQualityLevels() { if (IsDirectBinding) { return(NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend(this.Handle, Selector.GetHandle("availableQualityLevels")))); } else { return(NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper(this.SuperHandle, Selector.GetHandle("availableQualityLevels")))); } }
public static string [] GetAllRoleHandlersForContentType(string contentType, LSRoles roles = LSRoles.All) { if (contentType == null) { throw new ArgumentNullException(nameof(contentType)); } return(NSArray.StringArrayFromHandle( LSCopyAllRoleHandlersForContentType(new NSString(contentType).Handle, roles) )); }
public static string [] GetAllHandlersForUrlScheme(string urlScheme) { if (urlScheme == null) { throw new ArgumentNullException(nameof(urlScheme)); } return(NSArray.StringArrayFromHandle( LSCopyAllHandlersForURLScheme(new NSString(urlScheme).Handle) )); }
static string[] GetBackgroundModes(NSBundle bundle) { var backgroundModes = bundle.ObjectForInfoDictionary("UIBackgroundModes"); if (backgroundModes == null) { return(new string[0]); } return(NSArray.StringArrayFromHandle(backgroundModes.Handle)); }
public IEnumerable <string> GetFileNames() { using (var fileNames = (NSArray)_info.DraggingPasteboard.GetPropertyListForType(NSPasteboard.NSFilenamesType)) { if (fileNames != null) { return(NSArray.StringArrayFromHandle(fileNames.Handle)); } } return(Enumerable.Empty <string>()); }
// according to webkit source code (the only use I could find) this is an array of CFString // https://github.com/WebKit/webkit/blob/master/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp static public string[] GetPreferredCharacteristics() { var handle = MAAudibleMediaCopyPreferredCharacteristics(); if (handle == IntPtr.Zero) { return(null); } var result = NSArray.StringArrayFromHandle(handle); CFObject.CFRelease(handle); // *Copy* API return(result); }
public PMStatusCode TryGetMimeTypes(PMPrintSettings settings, out string [] mimeTypes) { IntPtr m; var code = PMPrinterGetMimeTypes(handle, settings == null ? IntPtr.Zero : settings.Handle, out m); if (code != PMStatusCode.Ok) { mimeTypes = null; return(code); } mimeTypes = NSArray.StringArrayFromHandle(m); return(PMStatusCode.Ok); }
static public StatusCode TryGetSupportedInterfaces(out string[] supportedInterfaces) { IntPtr array = CNCopySupportedInterfaces(); if (array == IntPtr.Zero) { supportedInterfaces = null; return(StatusCodeError.SCError()); } supportedInterfaces = NSArray.StringArrayFromHandle(array); CFObject.CFRelease(array); return(StatusCode.OK); }
public string[] this [NSString key] { get { if (key == null) { throw new ArgumentNullException(nameof(key)); } var value = CFDictionary.GetValue(Dictionary.Handle, key.Handle); return(NSArray.StringArrayFromHandle(value)); } set { SetArrayValue(key, value); } }
public string[] GetEmailAddresses() { string[] results = null; IntPtr emails; if (SecCertificateCopyEmailAddresses(handle, out emails) == 0) { results = NSArray.StringArrayFromHandle(emails); if (emails != IntPtr.Zero) { CFObject.CFRelease(emails); } } return(results); }
public static string [] CopyAllTags(string uti, string tagClass) { if (uti == null) { throw new ArgumentNullException("uti"); } if (tagClass == null) { throw new ArgumentNullException("tagClass"); } var a = NSString.CreateNative(uti); var b = NSString.CreateNative(tagClass); var ret = NSArray.StringArrayFromHandle(UTTypeCopyAllTagsWithClass(a, b)); NSString.ReleaseNative(a); NSString.ReleaseNative(b); return(ret); }
public static void RequestSharedWebCredential(string domainName, string account, Action <string[], NSError> handler) { // do not check domain an account because they can be null Action <NSArray, NSError> onComplete = (NSArray a, NSError e) => { // get a string [] for the user rather than an ugly NSArray var array = NSArray.StringArrayFromHandle(a.Handle); handler(array, e); }; // we need to create our own block literal. unsafe { BlockLiteral *block_ptr_onComplete; BlockLiteral block_onComplete; block_onComplete = new BlockLiteral(); block_ptr_onComplete = &block_onComplete; block_onComplete.SetupBlock(ArrayErrorActionTrampoline.Handler, onComplete); NSString nsDomain = null; if (domainName != null) { nsDomain = new NSString(domainName); } NSString nsAccount = null; if (account != null) { nsAccount = new NSString(account); } SecRequestSharedWebCredential((nsDomain == null)? IntPtr.Zero : nsDomain.Handle, (nsAccount == null)? IntPtr.Zero : nsAccount.Handle, (IntPtr)block_ptr_onComplete); block_ptr_onComplete->CleanupBlock(); if (nsDomain != null) { nsDomain.Dispose(); } if (nsAccount != null) { nsAccount.Dispose(); } } }
public static string[] GetArrayOfStringVariableWithName(this CleverTap This, string name, string[] defaultValue) { if (name == null) { throw new ArgumentNullException("name"); } if (defaultValue == null) { throw new ArgumentNullException("defaultValue"); } var nsname = NSString.CreateNative(name); var nsa_defaultValue = NSArray.FromStrings(defaultValue); string[] ret; ret = NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(This.Handle, Selector.GetHandle("getArrayOfStringVariableWithName:defaultValue:"), nsname, nsa_defaultValue.Handle)); NSString.ReleaseNative(nsname); nsa_defaultValue.Dispose(); return(ret); }
public static string [] CreateAllIdentifiers(string tagClass, string tag, string conformingToUti) { if (tagClass == null) { throw new ArgumentNullException("tagClass"); } if (tag == null) { throw new ArgumentNullException("tag"); } var a = NSString.CreateNative(tagClass); var b = NSString.CreateNative(tag); var c = NSString.CreateNative(conformingToUti); var ret = NSArray.StringArrayFromHandle(UTTypeCreateAllIdentifiersForTag(a, b, c)); NSString.ReleaseNative(a); NSString.ReleaseNative(b); NSString.ReleaseNative(c); return(ret); }
public void ArrayTest() { var obj = new ArrayTrampolines(); string[] arr = new string [] { "abc" }; int c; c = Messaging.int_objc_msgSend_IntPtr(obj.Handle, new Selector("Test_StringArray:").Handle, NSArray.FromStrings(arr).Handle); Assert.That(c == 1, "#a1"); Assert.That(arr [0] == "abc"); // array elements aren't copied back out (maybe they should be?) arr = NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend(obj.Handle, new Selector("Test_StringArrayReturn").Handle)); Assert.That(arr.Length == 1, "#b1"); Assert.That(arr [0] == "def", "#b2"); arr = NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend(obj.Handle, new Selector("Test_StringArrayNullReturn").Handle)); Assert.IsNull(arr, "#c1"); c = Messaging.int_objc_msgSend_IntPtr(obj.Handle, new Selector("Test_StringArray:").Handle, IntPtr.Zero); Assert.AreEqual(-1, c, "#d1"); }
bool MatchesTags(Post post) { if (post == null) { return(false); } var weakTags = post.PostRecord [Post.TagsKey]; string[] postTags = NSArray.StringArrayFromHandle(weakTags.Handle); // All tags from seach field (tagArray) must be presented inside post foreach (string tag in tagArray) { if (!postTags.Contains(tag)) { return(false); } } // if we are here => post contains all tags from search field return(true); }
public StreamListManager() { var streamsFilepath = NSBundle.MainBundle.GetUrlForResource("Streams", "plist"); if (streamsFilepath == null) { return; } NSError error; var plistValues = NSArray.FromUrl(streamsFilepath, out error); if (error != null) { throw new Exception("Error parsing streams.plist"); } for (nuint i = 0; i < plistValues.Count; i++) { var value = plistValues.ValueAt(i); var item = plistValues.GetItem <NSDictionary>(i); if (item == null) { break; } var name = item["name"].ToString(); var playlistUrl = item["playlist_url"].ToString(); var isProtected = (NSNumber)item.ValueForKey(new NSString("is_protected")); var contentKeys = item["content_key_id_list"] as NSArray; var contentKeyIds = NSArray.StringArrayFromHandle(contentKeys.Handle)?.ToList(); Streams.Add(new Stream(name, playlistUrl, isProtected.BoolValue, contentKeyIds)); } }
public static string[] SearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, bool expandTilde) { var handle = NSSearchPathForDirectoriesInDomains(directory, domainMask, expandTilde); return(NSArray.StringArrayFromHandle(handle)); }
public static string[] CountryNames() { return(NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend(class_ptr, Selector.GetHandle("countryNames")))); }
private static RaygunErrorStackTraceLineMessage[] BuildStackTrace(Exception exception) { var lines = new List <RaygunErrorStackTraceLineMessage>(); #if !__UNIFIED__ MonoTouchException mex = exception as MonoTouchException; if (mex != null && mex.NSException != null) { var ptr = Messaging.intptr_objc_msgSend(mex.NSException.Handle, Selector.GetHandle("callStackSymbols")); var arr = NSArray.StringArrayFromHandle(ptr); foreach (var line in arr) { lines.Add(new RaygunErrorStackTraceLineMessage { FileName = line }); } return(lines.ToArray()); } #endif string stackTraceStr = exception.StackTrace; if (stackTraceStr == null) { var line = new RaygunErrorStackTraceLineMessage { FileName = "none", LineNumber = 0 }; lines.Add(line); return(lines.ToArray()); } try { string[] stackTraceLines = stackTraceStr.Split('\n'); foreach (string stackTraceLine in stackTraceLines) { int lineNumber = 0; string fileName = null; string methodName = null; string className = null; string stackTraceLn = stackTraceLine; // Line number int index = stackTraceLine.LastIndexOf(":"); if (index > 0) { bool success = int.TryParse(stackTraceLn.Substring(index + 1), out lineNumber); if (success) { stackTraceLn = stackTraceLn.Substring(0, index); // File name index = stackTraceLn.LastIndexOf("] in "); if (index > 0) { fileName = stackTraceLn.Substring(index + 5); stackTraceLn = stackTraceLn.Substring(0, index); // Method name index = stackTraceLn.LastIndexOf("("); if (index > 0) { index = stackTraceLn.LastIndexOf(".", index); if (index > 0) { int endIndex = stackTraceLn.IndexOf("[0x"); if (endIndex < 0) { endIndex = stackTraceLn.Length; } methodName = stackTraceLn.Substring(index + 1, endIndex - index - 1).Trim(); methodName = methodName.Replace(" (", "("); stackTraceLn = stackTraceLn.Substring(0, index); } } // Class name index = stackTraceLn.IndexOf("at "); if (index >= 0) { className = stackTraceLn.Substring(index + 3); } } else { fileName = stackTraceLn; } } else { index = stackTraceLn.IndexOf("at "); if (index >= 0) { index += 3; } else { index = 0; } fileName = stackTraceLn.Substring(index); } } else { fileName = stackTraceLn; } var line = new RaygunErrorStackTraceLineMessage { FileName = fileName, LineNumber = lineNumber, MethodName = methodName, ClassName = className }; lines.Add(line); } if (lines.Count > 0) { return(lines.ToArray()); } } catch { } var stackTrace = new StackTrace(exception, true); var frames = stackTrace.GetFrames(); if (frames == null || frames.Length == 0) { var line = new RaygunErrorStackTraceLineMessage { FileName = "none", LineNumber = 0 }; lines.Add(line); return(lines.ToArray()); } foreach (StackFrame frame in frames) { MethodBase method = frame.GetMethod(); if (method != null) { int lineNumber = frame.GetFileLineNumber(); if (lineNumber == 0) { lineNumber = frame.GetILOffset(); } var methodName = GenerateMethodName(method); string file = frame.GetFileName(); string className = method.ReflectedType != null ? method.ReflectedType.FullName : "(unknown)"; var line = new RaygunErrorStackTraceLineMessage { FileName = file, LineNumber = lineNumber, MethodName = methodName, ClassName = className }; lines.Add(line); } } return(lines.ToArray()); }
public static string[] GetRegisteredUrlSchemes(this ICTPlistInfo This) { return(NSArray.StringArrayFromHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend(This.Handle, Selector.GetHandle("registeredUrlSchemes")))); }
public string [] GetIdentifiersOfEntries <T> () { return(NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend_IntPtr(this.Handle, Selector.GetHandle("identifiersOfEntriesWithClass:"), new Class(typeof(T)).Handle))); }
private RaygunErrorStackTraceLineMessage[] BuildStackTrace(Exception exception) { var lines = new List <RaygunErrorStackTraceLineMessage>(); #if WINRT string[] delim = { "\r\n" }; string stackTrace = exception.StackTrace ?? exception.Data["Message"] as string; if (stackTrace != null) { var frames = stackTrace.Split(delim, StringSplitOptions.RemoveEmptyEntries); foreach (string line in frames) { lines.Add(new RaygunErrorStackTraceLineMessage() { ClassName = line }); } } #elif WINDOWS_PHONE if (exception.StackTrace != null) { char[] delim = { '\r', '\n' }; var frames = exception.StackTrace.Split(delim); foreach (string line in frames) { if (!"".Equals(line)) { RaygunErrorStackTraceLineMessage stackTraceLineMessage = new RaygunErrorStackTraceLineMessage(); stackTraceLineMessage.ClassName = line; lines.Add(stackTraceLineMessage); } } } #else #if IOS MonoTouchException mex = exception as MonoTouchException; if (mex != null && mex.NSException != null) { var ptr = Messaging.intptr_objc_msgSend(mex.NSException.Handle, Selector.GetHandle("callStackSymbols")); var arr = NSArray.StringArrayFromHandle(ptr); foreach (var line in arr) { lines.Add(new RaygunErrorStackTraceLineMessage { FileName = line }); } return(lines.ToArray()); } #endif var stackTrace = new StackTrace(exception, true); var frames = stackTrace.GetFrames(); if (frames == null || frames.Length == 0) { var line = new RaygunErrorStackTraceLineMessage { FileName = "none", LineNumber = 0 }; lines.Add(line); return(lines.ToArray()); } foreach (StackFrame frame in frames) { MethodBase method = frame.GetMethod(); if (method != null) { int lineNumber = frame.GetFileLineNumber(); if (lineNumber == 0) { lineNumber = frame.GetILOffset(); } var methodName = GenerateMethodName(method); string file = frame.GetFileName(); string className = method.ReflectedType != null ? method.ReflectedType.FullName : "(unknown)"; var line = new RaygunErrorStackTraceLineMessage { FileName = file, LineNumber = lineNumber, MethodName = methodName, ClassName = className }; lines.Add(line); } } #endif return(lines.ToArray()); }
private static RaygunErrorStackTraceLineMessage[] BuildStackTrace(Exception exception) { var lines = new List <RaygunErrorStackTraceLineMessage>(); #if !__UNIFIED__ MonoTouchException mex = exception as MonoTouchException; if (mex != null && mex.NSException != null) { var ptr = Messaging.intptr_objc_msgSend(mex.NSException.Handle, Selector.GetHandle("callStackSymbols")); var arr = NSArray.StringArrayFromHandle(ptr); foreach (var line in arr) { lines.Add(new RaygunErrorStackTraceLineMessage { FileName = line }); } return(lines.ToArray()); } #endif string stackTraceStr = exception.StackTrace; if (stackTraceStr == null) { var line = new RaygunErrorStackTraceLineMessage { FileName = "none", LineNumber = 0 }; lines.Add(line); return(lines.ToArray()); } try { RaygunErrorStackTraceLineMessage[] array = ParseStackTrace(exception.StackTrace); if (array.Length > 0) { return(array); } } catch { } var stackTrace = new StackTrace(exception, true); var frames = stackTrace.GetFrames(); if (frames == null || frames.Length == 0) { var line = new RaygunErrorStackTraceLineMessage { FileName = "none", LineNumber = 0 }; lines.Add(line); return(lines.ToArray()); } foreach (StackFrame frame in frames) { MethodBase method = frame.GetMethod(); if (method != null) { int lineNumber = frame.GetFileLineNumber(); if (lineNumber == 0) { lineNumber = frame.GetILOffset(); } var methodName = GenerateMethodName(method); string file = frame.GetFileName(); string className = method.ReflectedType != null ? method.ReflectedType.FullName : "(unknown)"; var line = new RaygunErrorStackTraceLineMessage { FileName = file, LineNumber = lineNumber, MethodName = methodName, ClassName = className }; lines.Add(line); } } return(lines.ToArray()); }
public void NSArray_StringArrayFromHandle(string name, NSArray value) { NSArray.StringArrayFromHandle(value.GetHandle()); }