using CPF.Mac.Foundation;
using CPF.Mac.ObjCRuntime;
using System;

namespace CPF.Mac.CoreText
{
	[Since(3, 2)]
	public static class CTFontDescriptorAttributeKey
	{
		public static readonly NSString Url;

		public static readonly NSString Name;

		public static readonly NSString DisplayName;

		public static readonly NSString FamilyName;

		public static readonly NSString StyleName;

		public static readonly NSString Traits;

		public static readonly NSString Variation;

		public static readonly NSString Size;

		public static readonly NSString Matrix;

		public static readonly NSString CascadeList;

		public static readonly NSString CharacterSet;

		public static readonly NSString Languages;

		public static readonly NSString BaselineAdjust;

		public static readonly NSString MacintoshEncodings;

		public static readonly NSString Features;

		public static readonly NSString FeatureSettings;

		public static readonly NSString FixedAdvance;

		public static readonly NSString FontOrientation;

		public static readonly NSString FontFormat;

		public static readonly NSString RegistrationScope;

		public static readonly NSString Priority;

		public static readonly NSString Enabled;

		static CTFontDescriptorAttributeKey()
		{
			IntPtr intPtr = Dlfcn.dlopen("/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreText.framework/CoreText", 0);
			if (!(intPtr == IntPtr.Zero))
			{
				try
				{
					Url = Dlfcn.GetStringConstant(intPtr, "kCTFontURLAttribute");
					Name = Dlfcn.GetStringConstant(intPtr, "kCTFontNameAttribute");
					DisplayName = Dlfcn.GetStringConstant(intPtr, "kCTFontDisplayNameAttribute");
					FamilyName = Dlfcn.GetStringConstant(intPtr, "kCTFontFamilyNameAttribute");
					StyleName = Dlfcn.GetStringConstant(intPtr, "kCTFontStyleNameAttribute");
					Traits = Dlfcn.GetStringConstant(intPtr, "kCTFontTraitsAttribute");
					Variation = Dlfcn.GetStringConstant(intPtr, "kCTFontVariationAttribute");
					Size = Dlfcn.GetStringConstant(intPtr, "kCTFontSizeAttribute");
					Matrix = Dlfcn.GetStringConstant(intPtr, "kCTFontMatrixAttribute");
					CascadeList = Dlfcn.GetStringConstant(intPtr, "kCTFontCascadeListAttribute");
					CharacterSet = Dlfcn.GetStringConstant(intPtr, "kCTFontCharacterSetAttribute");
					Languages = Dlfcn.GetStringConstant(intPtr, "kCTFontLanguagesAttribute");
					BaselineAdjust = Dlfcn.GetStringConstant(intPtr, "kCTFontBaselineAdjustAttribute");
					MacintoshEncodings = Dlfcn.GetStringConstant(intPtr, "kCTFontMacintoshEncodingsAttribute");
					Features = Dlfcn.GetStringConstant(intPtr, "kCTFontFeaturesAttribute");
					FeatureSettings = Dlfcn.GetStringConstant(intPtr, "kCTFontFeatureSettingsAttribute");
					FixedAdvance = Dlfcn.GetStringConstant(intPtr, "kCTFontFixedAdvanceAttribute");
					FontOrientation = Dlfcn.GetStringConstant(intPtr, "kCTFontOrientationAttribute");
					FontFormat = Dlfcn.GetStringConstant(intPtr, "kCTFontFormatAttribute");
					RegistrationScope = Dlfcn.GetStringConstant(intPtr, "kCTFontRegistrationScopeAttribute");
					Priority = Dlfcn.GetStringConstant(intPtr, "kCTFontPriorityAttribute");
					Enabled = Dlfcn.GetStringConstant(intPtr, "kCTFontEnabledAttribute");
				}
				finally
				{
					Dlfcn.dlclose(intPtr);
				}
			}
		}
	}
}
