public NSUrl[] GetResourceUrls(string resourceType, string subDirName, string localizationName) { if (String.IsNullOrEmpty(resourceType)) { throw new ArgumentException("resourceType"); } if (String.IsNullOrEmpty(localizationName)) { throw new ArgumentException("localizationName"); } using (CFString cfType = new CFString(resourceType), cfDirName = new CFString(subDirName ?? string.Empty), cfLocalization = new CFString(localizationName)) using (var cfArray = new CFArray(CFBundleCopyResourceURLsOfTypeForLocalization(handle, cfType.Handle, String.IsNullOrEmpty(subDirName) ? IntPtr.Zero : cfDirName.Handle, cfLocalization.Handle), true)) { var urls = new NSUrl [cfArray.Count]; for (int index = 0; index < cfArray.Count; index++) { urls [index] = Runtime.GetNSObject <NSUrl> (cfArray.GetValue(index), true); } return(urls); } }
public static CFBundle[] GetAll() { using (var cfBundles = new CFArray(CFBundleGetAllBundles())) { var managedBundles = new CFBundle [cfBundles.Count]; for (int index = 0; index < cfBundles.Count; index++) { // follow the get rule, we do not own the object managedBundles [index] = new CFBundle(cfBundles.GetValue(index), false); } return(managedBundles); } }
public static string[] GetLocalizations(NSUrl bundle) { if (bundle == null) { throw new ArgumentNullException("bundle"); } using (var cfArray = new CFArray(CFBundleCopyLocalizationsForURL(bundle.Handle), true)) { var cultureInfo = new string [cfArray.Count]; for (int index = 0; index < cfArray.Count; index++) { cultureInfo [index] = CFString.FetchString(cfArray.GetValue(index)); } return(cultureInfo); } }
static CFProxy[] ParseProxies(IntPtr proxyList) { CFProxy[] proxies = null; if (proxyList != IntPtr.Zero) { // it was retained in the cbs. using (var array = new CFArray(proxyList, false)) { proxies = new CFProxy [array.Count]; for (int i = 0; i < proxies.Length; i++) { var dict = Runtime.GetNSObject <NSDictionary> (array.GetValue(i)); proxies[i] = new CFProxy(dict); } } } return(proxies); }
public NSUrl[] GetResourceUrls(string resourceType, string subDirName) { if (String.IsNullOrEmpty(resourceType)) { throw new ArgumentException("resourceName"); } using (CFString cfResourceType = new CFString(resourceType), cfSubDir = new CFString(subDirName ?? string.Empty)) using (var cfArray = new CFArray(CFBundleCopyResourceURLsOfType(handle, cfResourceType.Handle, String.IsNullOrEmpty(subDirName) ? IntPtr.Zero : cfSubDir.Handle), true)) { var result = new NSUrl [cfArray.Count]; for (int index = 0; index < cfArray.Count; index++) { result [index] = Runtime.GetNSObject <NSUrl> (cfArray.GetValue(index), true); } return(result); } }
public static CFBundle[] GetBundlesFromDirectory(NSUrl directoryUrl, string bundleType) { if (directoryUrl == null) // NSUrl cannot be "" by definition { throw new ArgumentNullException("directoryUrl"); } if (String.IsNullOrEmpty(bundleType)) { throw new ArgumentException("bundleType"); } using (var bundleTypeCFSting = new CFString(bundleType)) using (var cfBundles = new CFArray(CFBundleCreateBundlesFromDirectory(IntPtr.Zero, directoryUrl.Handle, bundleTypeCFSting.Handle), true)) { var managedBundles = new CFBundle [cfBundles.Count]; for (int index = 0; index < cfBundles.Count; index++) { // follow the create rules, therefore we do have ownership of each of the cfbundles managedBundles [index] = new CFBundle(cfBundles.GetValue(index), true); } return(managedBundles); } }
public static string[] GetPreferredLocalizations(string[] locArray) { if (locArray == null) { throw new ArgumentNullException("locArray"); } var cfString = new CFString [locArray.Length]; for (int index = 0; index < locArray.Length; index++) { cfString [index] = new CFString(locArray [index]); } using (var cfLocArray = CFArray.FromNativeObjects(cfString)) using (var cfArray = new CFArray(CFBundleCopyPreferredLocalizationsFromArray(cfLocArray.Handle), true)) { var cultureInfo = new string [cfArray.Count]; for (int index = 0; index < cfArray.Count; index++) { cultureInfo [index] = CFString.FetchString(cfArray.GetValue(index)); } return(cultureInfo); } }
public static string[] GetLocalizationsForPreferences(string[] locArray, string[] prefArray) { if (locArray == null) { throw new ArgumentNullException("locArray"); } if (prefArray == null) { throw new ArgumentNullException("prefArray"); } var cfLocal = new CFString [locArray.Length]; for (int index = 0; index < locArray.Length; index++) { cfLocal [index] = new CFString(locArray [index]); } var cfPref = new CFString [prefArray.Length]; for (int index = 0; index < prefArray.Length; index++) { cfPref [index] = new CFString(prefArray [index]); } using (CFArray cfLocalArray = CFArray.FromNativeObjects(cfLocal), cfPrefArray = CFArray.FromNativeObjects(cfPref)) using (var cfArray = new CFArray(CFBundleCopyLocalizationsForPreferences(cfLocalArray.Handle, cfPrefArray.Handle), true)) { var cultureInfo = new string [cfArray.Count]; for (int index = 0; index < cfArray.Count; index++) { cultureInfo [index] = CFString.FetchString(cfArray.GetValue(index)); } return(cultureInfo); } }