Exemple #1
0
        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));
        }
Exemple #4
0
 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"))));
     }
 }
Exemple #5
0
 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"))));
     }
 }
Exemple #6
0
        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)
                       ));
        }
Exemple #7
0
        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));
        }
Exemple #9
0
        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>());
        }
Exemple #10
0
        // 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);
        }
Exemple #11
0
        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);
            }
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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);
        }
Exemple #18
0
        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);
        }
Exemple #19
0
        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");
        }
Exemple #20
0
        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);
        }
Exemple #21
0
        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));
            }
        }
Exemple #22
0
        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"))));
 }
Exemple #24
0
        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"))));
 }
Exemple #26
0
 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());
        }
Exemple #28
0
        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());
 }