// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osuTK; using System; using System.Collections.Generic; using osu.Framework.Graphics.Effects; namespace osu.Framework.Graphics.Containers { public interface IContainer : IDrawable { EdgeEffectParameters EdgeEffect { get; set; } Vector2 RelativeChildSize { get; set; } Vector2 RelativeChildOffset { get; set; } } public interface IContainerEnumerable : IContainer where T : class, IDrawable { IReadOnlyList Children { get; } int RemoveAll(Predicate match); } public interface IContainerCollection : IContainer where T : class, IDrawable { IReadOnlyList Children { set; } T Child { set; } IEnumerable ChildrenEnumerable { set; } void Add(T drawable); void AddRange(IEnumerable collection); bool Remove(T drawable); void RemoveRange(IEnumerable range); } }