// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Pooling; namespace osu.Game.Screens.SelectV2 { /// /// An interface to be attached to any s which are used for display inside a . /// Importantly, all properties in this interface are managed by and should not be written to elsewhere. /// public interface ICarouselPanel { /// /// Whether this item has selection (see ). Should be read from to update the visual state. /// BindableBool Selected { get; } /// /// Whether this item is expanded (see ). Should be read from to update the visual state. /// BindableBool Expanded { get; } /// /// Whether this item has keyboard selection. Should be read from to update the visual state. /// BindableBool KeyboardSelected { get; } /// /// Called when the panel is activated. Should be used to update the panel's visual state. /// void Activated(); /// /// The Y position used internally for positioning in the carousel. /// double DrawYPosition { get; set; } /// /// The carousel item this drawable is representing. Will be set before is called. /// CarouselItem? Item { get; set; } } }