1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-08 11:27:44 +08:00

Merge pull request #18691 from peppy/toolbar-scrolling-ruleset-selection

Allow scrolling overflow of ruleset buttons in the toolbar
This commit is contained in:
Bartłomiej Dach 2022-06-14 21:43:00 +02:00 committed by GitHub
commit 54eb2083c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 107 additions and 36 deletions

View File

@ -14,6 +14,7 @@ using osu.Framework.Bindables;
using osu.Framework.Input.Events; using osu.Framework.Input.Events;
using osu.Game.Rulesets; using osu.Game.Rulesets;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Game.Graphics.Containers;
using osu.Game.Input.Bindings; using osu.Game.Input.Bindings;
namespace osu.Game.Overlays.Toolbar namespace osu.Game.Overlays.Toolbar
@ -65,6 +66,32 @@ namespace osu.Game.Overlays.Toolbar
Children = new Drawable[] Children = new Drawable[]
{ {
new ToolbarBackground(), new ToolbarBackground(),
new GridContainer
{
RelativeSizeAxes = Axes.Both,
ColumnDimensions = new[]
{
new Dimension(GridSizeMode.AutoSize),
new Dimension(),
new Dimension(GridSizeMode.AutoSize)
},
Content = new[]
{
new Drawable[]
{
new Container
{
Name = "Left buttons",
RelativeSizeAxes = Axes.Y,
AutoSizeAxes = Axes.X,
Depth = float.MinValue,
Children = new Drawable[]
{
new Box
{
Colour = OsuColour.Gray(0.1f),
RelativeSizeAxes = Axes.Both,
},
new FillFlowContainer new FillFlowContainer
{ {
Direction = FillDirection.Horizontal, Direction = FillDirection.Horizontal,
@ -77,9 +104,48 @@ namespace osu.Game.Overlays.Toolbar
{ {
Action = () => OnHome?.Invoke() Action = () => OnHome?.Invoke()
}, },
},
},
}
},
new Container
{
Name = "Ruleset selector",
RelativeSizeAxes = Axes.Both,
Children = new Drawable[]
{
new OsuScrollContainer(Direction.Horizontal)
{
ScrollbarVisible = false,
RelativeSizeAxes = Axes.Both,
Masking = false,
Children = new Drawable[]
{
rulesetSelector = new ToolbarRulesetSelector() rulesetSelector = new ToolbarRulesetSelector()
} }
}, },
new Box
{
Colour = ColourInfo.GradientHorizontal(OsuColour.Gray(0.1f).Opacity(0), OsuColour.Gray(0.1f)),
Width = 50,
RelativeSizeAxes = Axes.Y,
Anchor = Anchor.TopRight,
Origin = Anchor.TopRight,
},
}
},
new Container
{
Name = "Right buttons",
RelativeSizeAxes = Axes.Y,
AutoSizeAxes = Axes.X,
Children = new Drawable[]
{
new Box
{
Colour = OsuColour.Gray(0.1f),
RelativeSizeAxes = Axes.Both,
},
new FillFlowContainer new FillFlowContainer
{ {
Anchor = Anchor.TopRight, Anchor = Anchor.TopRight,
@ -105,6 +171,11 @@ namespace osu.Game.Overlays.Toolbar
new ToolbarClock(), new ToolbarClock(),
new ToolbarNotificationButton(), new ToolbarNotificationButton(),
} }
},
}
},
},
}
} }
}; };

View File

@ -161,7 +161,7 @@ namespace osu.Game.Overlays.Toolbar
}; };
} }
protected override bool OnMouseDown(MouseDownEvent e) => true; protected override bool OnMouseDown(MouseDownEvent e) => false;
protected override bool OnClick(ClickEvent e) protected override bool OnClick(ClickEvent e)
{ {