using System; using System.Collections.Generic; namespace Xamarin.PropertyEditing { public interface IPropertyInfo { string Name { get; } /// /// Gets a summary description of the property. /// /// /// Currently does not support any form of markup. /// string Description { get; } /// /// Gets the representative type for the property (Common*, primitive, etc). /// Type Type { get; } /// /// Gets the real type for the property (ex. Drawable instead of CommonBrush). /// ITypeInfo RealType { get; } /// /// A resource-name of the category the property belongs to. /// string Category { get; } bool CanWrite { get; } /// /// Gets whether the property is an uncommonly used property. /// /// /// This acts as a hint to hide the property behind disclosures when appropriate. /// bool IsUncommon { get; } /// /// Gets the possible sources of values for this property. /// ValueSources ValueSources { get; } /// /// Gets a list of possible variations of the property. /// /// /// /// These are essentially conditions that can be applied for when a specific value for a property is used. /// They should not include a neutral state. /// /// IReadOnlyList Variations { get; } IReadOnlyList AvailabilityConstraints { get; } } }