// 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.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Cursor; using osu.Game.Overlays; namespace osu.Game.Screens.Edit { /// /// TODO: eventually make this inherit Screen and add a local screen stack inside the Editor. /// public abstract class EditorScreen : VisibilityContainer { [Resolved] protected EditorBeatmap EditorBeatmap { get; private set; } [Cached] protected readonly OverlayColourProvider ColourProvider; protected override Container Content => content; private readonly Container content; public readonly EditorScreenMode Type; protected EditorScreen(EditorScreenMode type) { Type = type; Anchor = Anchor.Centre; Origin = Anchor.Centre; RelativeSizeAxes = Axes.Both; ColourProvider = new OverlayColourProvider(OverlayColourScheme.Blue); InternalChild = content = new PopoverContainer { RelativeSizeAxes = Axes.Both }; } protected override void PopIn() { this.ScaleTo(1f, 200, Easing.OutQuint) .FadeIn(200, Easing.OutQuint); } protected override void PopOut() { this.ScaleTo(0.98f, 200, Easing.OutQuint) .FadeOut(200, Easing.OutQuint); } #region Clipboard operations /// /// Performs a "cut to clipboard" operation appropriate for the given screen. /// public virtual void Cut() { } /// /// Performs a "copy to clipboard" operation appropriate for the given screen. /// public virtual void Copy() { } /// /// Performs a "paste from clipboard" operation appropriate for the given screen. /// public virtual void Paste() { } #endregion } }