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

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

		public static readonly NSString ForegroundColorFromContext;

		public static readonly NSString KerningAdjustment;

		public static readonly NSString LigatureFormation;

		public static readonly NSString ForegroundColor;

		public static readonly NSString ParagraphStyle;

		public static readonly NSString StrokeWidth;

		public static readonly NSString StrokeColor;

		public static readonly NSString UnderlineStyle;

		public static readonly NSString Superscript;

		public static readonly NSString UnderlineColor;

		public static readonly NSString VerticalForms;

		public static readonly NSString GlyphInfo;

		public static readonly NSString CharacterShape;

		public static readonly NSString RunDelegate;

		internal static readonly NSString BaselineClass;

		internal static readonly NSString BaselineInfo;

		internal static readonly NSString BaselineReferenceInfo;

		internal static readonly NSString WritingDirection;

		static CTStringAttributeKey()
		{
			IntPtr intPtr = Dlfcn.dlopen("/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreText.framework/CoreText", 0);
			if (!(intPtr == IntPtr.Zero))
			{
				try
				{
					Font = Dlfcn.GetStringConstant(intPtr, "kCTFontAttributeName");
					ForegroundColorFromContext = Dlfcn.GetStringConstant(intPtr, "kCTForegroundColorFromContextAttributeName");
					KerningAdjustment = Dlfcn.GetStringConstant(intPtr, "kCTKernAttributeName");
					LigatureFormation = Dlfcn.GetStringConstant(intPtr, "kCTLigatureAttributeName");
					ForegroundColor = Dlfcn.GetStringConstant(intPtr, "kCTForegroundColorAttributeName");
					ParagraphStyle = Dlfcn.GetStringConstant(intPtr, "kCTParagraphStyleAttributeName");
					StrokeWidth = Dlfcn.GetStringConstant(intPtr, "kCTStrokeWidthAttributeName");
					StrokeColor = Dlfcn.GetStringConstant(intPtr, "kCTStrokeColorAttributeName");
					UnderlineStyle = Dlfcn.GetStringConstant(intPtr, "kCTUnderlineStyleAttributeName");
					Superscript = Dlfcn.GetStringConstant(intPtr, "kCTSuperscriptAttributeName");
					UnderlineColor = Dlfcn.GetStringConstant(intPtr, "kCTUnderlineColorAttributeName");
					VerticalForms = Dlfcn.GetStringConstant(intPtr, "kCTVerticalFormsAttributeName");
					GlyphInfo = Dlfcn.GetStringConstant(intPtr, "kCTGlyphInfoAttributeName");
					CharacterShape = Dlfcn.GetStringConstant(intPtr, "kCTCharacterShapeAttributeName");
					RunDelegate = Dlfcn.GetStringConstant(intPtr, "kCTRunDelegateAttributeName");
				}
				finally
				{
					Dlfcn.dlclose(intPtr);
				}
			}
		}
	}
}
