public TestSceneLeaderboardModSelector() { LeaderboardModSelector modSelector; FillFlowContainer <SpriteText> selectedMods; var ruleset = new Bindable <IRulesetInfo>(); Add(selectedMods = new FillFlowContainer <SpriteText> { Anchor = Anchor.TopLeft, Origin = Anchor.TopLeft, }); Add(modSelector = new LeaderboardModSelector { Anchor = Anchor.Centre, Origin = Anchor.Centre, Ruleset = { BindTarget = ruleset } }); modSelector.SelectedMods.CollectionChanged += (_, args) => { switch (args.Action) { case NotifyCollectionChangedAction.Add: args.NewItems.AsNonNull().Cast <Mod>().ForEach(mod => selectedMods.Add(new OsuSpriteText { Text = mod.Acronym, })); break; case NotifyCollectionChangedAction.Remove: args.OldItems.AsNonNull().Cast <Mod>().ForEach(mod => { foreach (var selected in selectedMods) { if (selected.Text == mod.Acronym) { selectedMods.Remove(selected); break; } } }); break; } }; AddStep("osu ruleset", () => ruleset.Value = new OsuRuleset().RulesetInfo); AddStep("mania ruleset", () => ruleset.Value = new ManiaRuleset().RulesetInfo); AddStep("taiko ruleset", () => ruleset.Value = new TaikoRuleset().RulesetInfo); AddStep("catch ruleset", () => ruleset.Value = new CatchRuleset().RulesetInfo); AddStep("Deselect all", () => modSelector.DeselectAll()); AddStep("null ruleset", () => ruleset.Value = null); }
public TestSceneLeaderboardModSelector() { LeaderboardModSelector modSelector; FillFlowContainer <SpriteText> selectedMods; var ruleset = new Bindable <RulesetInfo>(); Add(selectedMods = new FillFlowContainer <SpriteText> { Anchor = Anchor.TopLeft, Origin = Anchor.TopLeft, }); Add(modSelector = new LeaderboardModSelector { Anchor = Anchor.Centre, Origin = Anchor.Centre, Ruleset = { BindTarget = ruleset } }); modSelector.SelectedMods.ItemsAdded += mods => { mods.ForEach(mod => selectedMods.Add(new OsuSpriteText { Text = mod.Acronym, })); }; modSelector.SelectedMods.ItemsRemoved += mods => { mods.ForEach(mod => { foreach (var selected in selectedMods) { if (selected.Text == mod.Acronym) { selectedMods.Remove(selected); break; } } }); }; AddStep("osu ruleset", () => ruleset.Value = new OsuRuleset().RulesetInfo); AddStep("mania ruleset", () => ruleset.Value = new ManiaRuleset().RulesetInfo); AddStep("taiko ruleset", () => ruleset.Value = new TaikoRuleset().RulesetInfo); AddStep("catch ruleset", () => ruleset.Value = new CatchRuleset().RulesetInfo); AddStep("Deselect all", () => modSelector.DeselectAll()); AddStep("null ruleset", () => ruleset.Value = null); }
public ScoresContainer() { RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; InternalChildren = new Drawable[] { background = new Box { RelativeSizeAxes = Axes.Both, }, content = new FillFlowContainer { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Width = 0.95f, Direction = FillDirection.Vertical, Margin = new MarginPadding { Vertical = spacing }, Children = new Drawable[] { new FillFlowContainer { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, Spacing = new Vector2(0, spacing), Children = new Drawable[] { new LeaderboardScopeSelector { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Current = { BindTarget = scope } }, modSelector = new LeaderboardModSelector { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Ruleset = { BindTarget = ruleset } } } }, new Container { AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, Margin = new MarginPadding { Vertical = spacing }, Children = new Drawable[] { noScoresPlaceholder = new NoScoresPlaceholder { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Alpha = 0, AlwaysPresent = true, Margin = new MarginPadding { Vertical = 10 } }, notSupporterPlaceholder = new NotSupporterPlaceholder { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, Alpha = 0, }, new FillFlowContainer { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, Spacing = new Vector2(0, spacing), Children = new Drawable[] { topScoresContainer = new FillFlowContainer { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Direction = FillDirection.Vertical, Spacing = new Vector2(0, 5), }, scoreTable = new ScoreTable { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, } } }, new Container { RelativeSizeAxes = Axes.Both, Masking = true, CornerRadius = 10, Child = loading = new DimmedLoadingLayer(iconScale: 0.8f) { Alpha = 0, }, } } } } }, }; }