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 static CTFontDescriptor[] GetFonts(NSUrl url) { if (url == null) { throw new ArgumentNullException("url"); } var arrayPtr = CTFontManagerCreateFontDescriptorsFromURL(url.Handle); if (arrayPtr == IntPtr.Zero) { return(new CTFontDescriptor [0]); } using (var unmanageFonts = new CFArray(arrayPtr, true)) { var managedFonts = new CTFontDescriptor [unmanageFonts.Count]; for (int index = 0; index < unmanageFonts.Count; index++) { managedFonts [index] = new CTFontDescriptor(unmanageFonts.GetValue(index), false); } return(managedFonts); } }
public static CTFontDescriptor GetFontDescriptor(MACaptionAppearanceDomain domain, ref MACaptionAppearanceBehavior behavior, MACaptionAppearanceFontStyle fontStyle) { nint b = (int) behavior; var rv = new CTFontDescriptor (MACaptionAppearanceCopyFontDescriptorForStyle ((int) domain, ref b, (int) fontStyle), owns: true); behavior = (MACaptionAppearanceBehavior) (int) b; return rv; }
public static bool MatchFontDescriptors(CTFontDescriptor[] descriptors, NSSet mandatoryAttributes, Func<CTFontDescriptorMatchingState, IntPtr, bool> progressHandler) { // FIXME: the P/Invoke used below is wrong, it expects a block, not a function pointer. // throwing a NIE instead of crashing until this is implemented properly. throw new NotImplementedException (); // var ma = mandatoryAttributes == null ? IntPtr.Zero : mandatoryAttributes.Handle; // // FIXME: SIGSEGV probably due to mandatoryAttributes mismatch // using (var ar = CFArray.FromNativeObjects (descriptors)) { // return CTFontDescriptorMatchFontDescriptorsWithProgressHandler (ar.Handle, ma, progressHandler); // } }
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 static CTFontDescriptor[] GetFonts(NSUrl url) { if (url == null) throw new ArgumentNullException ("url"); var arrayPtr = CTFontManagerCreateFontDescriptorsFromURL (url.Handle); if (arrayPtr == IntPtr.Zero) return new CTFontDescriptor [0]; using (var unmanageFonts = new CFArray (arrayPtr, true)) { var managedFonts = new CTFontDescriptor [unmanageFonts.Count]; for (int index = 0; index < unmanageFonts.Count; index++) { managedFonts [index] = new CTFontDescriptor (unmanageFonts.GetValue (index), false); } return managedFonts; } }