-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Expand file tree
/
Copy pathISongSelect.cs
More file actions
80 lines (68 loc) · 3 KB
/
ISongSelect.cs
File metadata and controls
80 lines (68 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// 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 System.Collections.Generic;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Game.Beatmaps;
using osu.Game.Graphics.UserInterface;
using osu.Game.Scoring;
namespace osu.Game.Screens.Select
{
/// <summary>
/// Actions exposed by song select which are used by subcomponents to perform top-level operations.
/// </summary>
[Cached]
public interface ISongSelect
{
/// <summary>
/// Requests the user for confirmation to delete the given beatmap set.
/// </summary>
void Delete(BeatmapSetInfo beatmapBeatmapSetInfo);
/// <summary>
/// Immediately restores any hidden beatmaps in the provided beatmap set.
/// </summary>
void RestoreAllHidden(BeatmapSetInfo beatmapSet);
/// <summary>
/// Requests the user for confirmation to delete all beatmap sets contained within the given group.
/// </summary>
/// <param name="group">The group whose contents should be deleted.</param>
void DeleteGroup(GroupDefinition group);
/// <summary>
/// Opens the manage collections dialog.
/// </summary>
void ManageCollections();
/// <summary>
/// Whether <see cref="PresentScore"/> can be performed by this screen.
/// If <see langword="false"/>, <see cref="PresentScore"/> will have no effect.
/// </summary>
bool CanPresentScore { get; }
/// <summary>
/// Opens results screen with the given score.
/// This assumes active beatmap and ruleset selection matches the score.
/// </summary>
void PresentScore(ScoreInfo score, ScorePresentType presentType = ScorePresentType.Results);
/// <summary>
/// Set the current filter text query to the provided string.
/// </summary>
void Search(string query);
/// <summary>
/// Gets relevant actionable items for beatmap context menus, based on the type of song select.
/// </summary>
IEnumerable<OsuMenuItem> GetForwardActions(BeatmapInfo beatmap);
/// <summary>
/// Temporarily bypasses filters and shows all difficulties of the given beatmapset.
/// </summary>
/// <param name="beatmapSet">The beatmapset.</param>
void ScopeToBeatmapSet(BeatmapSetInfo beatmapSet);
/// <summary>
/// Removes the beatmapset scope and reverts the previously selected filters.
/// </summary>
void UnscopeBeatmapSet();
/// <summary>
/// Contains the currently scoped beatmapset. Used by external consumers for displaying its state.
/// Cannot be used to change the value, any changes must be done through <see cref="ScopeToBeatmapSet"/>
/// or <see cref="UnscopeBeatmapSet"/>.
/// </summary>
IBindable<BeatmapSetInfo?> ScopedBeatmapSet { get; }
}
}