// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Graphics.Sprites; using osu.Game.Overlays.Dialog; using osu.Game.Localisation; namespace osu.Game.Screens.Edit { public partial class CreateNewDifficultyDialog : PopupDialog { /// <summary> /// Delegate used to create new difficulties. /// A value of <see langword="true"/> in the <c>createCopy</c> parameter /// indicates that the new difficulty should be an exact copy of an existing one; /// otherwise, the new difficulty should have its hitobjects and beatmap-level settings cleared. /// </summary> public delegate void CreateNewDifficulty(bool createCopy); public CreateNewDifficultyDialog(CreateNewDifficulty createNewDifficulty) { HeaderText = EditorDialogsStrings.NewDifficultyDialogHeader; Icon = FontAwesome.Regular.Clone; Buttons = new PopupDialogButton[] { new PopupDialogOkButton { Text = EditorDialogsStrings.CreateNew, Action = () => createNewDifficulty.Invoke(false) }, new PopupDialogCancelButton { Text = EditorDialogsStrings.CreateCopy, Action = () => createNewDifficulty.Invoke(true) }, new PopupDialogCancelButton { Text = EditorDialogsStrings.KeepEditing, Action = () => { } } }; } } }