List<string> NativeFontFamilies() { if (nativeFontCollection == null) { var collectionOptions = new CTFontCollectionOptions (); collectionOptions.RemoveDuplicates = true; nativeFontCollection = new CTFontCollection (collectionOptions); nativeFontDescriptors = new Dictionary<string, CTFontDescriptor> (); } var fontdescs = nativeFontCollection.GetMatchingFontDescriptors (); foreach (var fontdesc in fontdescs) { var font = new CTFont (fontdesc, 0); // Just in case RemoveDuplicates collection option is not working if (!nativeFontDescriptors.ContainsKey (font.FamilyName)) { nativeFontDescriptors.Add (font.FamilyName, fontdesc); } } var fontFamilies = new List<string> (nativeFontDescriptors.Keys); return fontFamilies; }
public CTFontCollection(CTFontCollectionOptions options) { handle = CTFontCollectionCreateFromAvailableFonts( options == null ? IntPtr.Zero : options.Dictionary.Handle); if (handle == IntPtr.Zero) { throw ConstructorError.Unknown(this); } }
public CTFontCollection(CTFontDescriptor[] queryDescriptors, CTFontCollectionOptions options) { using (var descriptors = queryDescriptors == null ? null : CFArray.FromNativeObjects(queryDescriptors)) handle = CTFontCollectionCreateWithFontDescriptors( descriptors == null ? IntPtr.Zero : descriptors.Handle, options == null ? IntPtr.Zero : options.Dictionary.Handle); if (handle == IntPtr.Zero) { throw ConstructorError.Unknown(this); } }
public CTFontCollection WithFontDescriptors(CTFontDescriptor[] queryDescriptors, CTFontCollectionOptions options) { IntPtr h; using (var descriptors = queryDescriptors == null ? null : CFArray.FromNativeObjects(queryDescriptors)) { h = CTFontCollectionCreateCopyWithFontDescriptors( handle, descriptors == null ? IntPtr.Zero : descriptors.Handle, options == null ? IntPtr.Zero : options.Dictionary.Handle); } if (h == IntPtr.Zero) { return(null); } return(new CTFontCollection(h, true)); }
public CTFontCollection WithFontDescriptors (CTFontDescriptor[] queryDescriptors, CTFontCollectionOptions options) { IntPtr h; using (var descriptors = queryDescriptors == null ? null : CFArray.FromNativeObjects (queryDescriptors)) { h = CTFontCollectionCreateCopyWithFontDescriptors ( Handle, descriptors == null ? IntPtr.Zero : descriptors.Handle, options == null ? IntPtr.Zero : options.Dictionary.Handle); } if (h == IntPtr.Zero) return null; return new CTFontCollection (h, true); }
public CTFontCollection (CTFontDescriptor[] queryDescriptors, CTFontCollectionOptions options) { using (var descriptors = queryDescriptors == null ? null : CFArray.FromNativeObjects (queryDescriptors)) Handle = CTFontCollectionCreateWithFontDescriptors ( descriptors == null ? IntPtr.Zero : descriptors.Handle, options == null ? IntPtr.Zero : options.Dictionary.Handle); if (Handle == IntPtr.Zero) throw ConstructorError.Unknown (this); }
public CTFontCollection (CTFontCollectionOptions options) { Handle = CTFontCollectionCreateFromAvailableFonts ( options == null ? IntPtr.Zero : options.Dictionary.Handle); if (Handle == IntPtr.Zero) throw ConstructorError.Unknown (this); }