using System.Collections.Generic; using System.ComponentModel; namespace RGB.NET.Core; /// /// Represents a basic decoratable. /// public interface IDecoratable : INotifyPropertyChanged; /// /// /// Represents a basic decoratable for a specific type of /// /// The type of decorators this decoratable can be decorated with. public interface IDecoratable : IDecoratable where T : IDecorator { /// /// Gets a readonly-list of all attached to this . /// IReadOnlyList Decorators { get; } /// /// Adds an to the . /// /// The to be added. void AddDecorator(T decorator); /// /// Removes an from the . /// /// The to be removed. void RemoveDecorator(T decorator); /// /// Removes all from the . /// void RemoveAllDecorators(); }