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

namespace CPF.Mac.CoreText
{
	[Since(3, 2)]
	public class CTFontFeatureSettings
	{
		public NSDictionary Dictionary
		{
			get;
			private set;
		}

		[Advice("Use FeatureGroup property instead")]
		public NSNumber TypeIdentifier
		{
			get
			{
				return (NSNumber)Dictionary[CTFontFeatureKey.Identifier];
			}
			set
			{
				Adapter.SetValue(Dictionary, CTFontFeatureKey.Identifier, value);
			}
		}

		public FontFeatureGroup FeatureGroup => (FontFeatureGroup)(int)(NSNumber)Dictionary[CTFontFeatureKey.Identifier];

		[Advice("Use FeatureWeak or FeatureGroup instead")]
		public NSNumber SelectorIdentifier
		{
			get
			{
				return (NSNumber)Dictionary[CTFontFeatureSelectorKey.Identifier];
			}
			set
			{
				Adapter.SetValue(Dictionary, CTFontFeatureSelectorKey.Identifier, value);
			}
		}

		public int FeatureWeak => (int)(NSNumber)Dictionary[CTFontFeatureSelectorKey.Identifier];

		public CTFontFeatureSettings(NSDictionary dictionary)
		{
			if (dictionary == null)
			{
				throw new ArgumentNullException("dictionary");
			}
			Dictionary = dictionary;
		}
	}
}
