1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-28 02:43:19 +08:00

Max sidebar draggable.

This commit is contained in:
Dean Herbert 2016-11-08 19:16:39 +09:00
parent 30323876a8
commit 3b0114671e
2 changed files with 27 additions and 12 deletions

View File

@ -80,7 +80,7 @@ namespace osu.Game
Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Black")); Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-Black"));
Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BlackItalic")); Fonts.AddStore(new GlyphStore(Resources, @"Fonts/Exo2.0-BlackItalic"));
(Options = new OptionsOverlay { Depth = float.MaxValue / 2}).Preload(game, Add); (Options = new OptionsOverlay { Depth = float.MaxValue / 2 }).Preload(game, Add);
API = new APIAccess() API = new APIAccess()
{ {

View File

@ -19,13 +19,19 @@ namespace osu.Game.Overlays.Options
RelativeSizeAxes = Axes.Y; RelativeSizeAxes = Axes.Y;
InternalChildren = new Drawable[] InternalChildren = new Drawable[]
{ {
content = new FlowContainer new SidebarScrollContainer
{ {
AutoSizeAxes = Axes.Y, Children = new []
RelativeSizeAxes = Axes.X, {
Origin = Anchor.CentreLeft, content = new FlowContainer
Anchor = Anchor.CentreLeft, {
Direction = FlowDirection.VerticalOnly Origin = Anchor.CentreLeft,
Anchor = Anchor.CentreLeft,
AutoSizeAxes = Axes.Y,
RelativeSizeAxes = Axes.X,
Direction = FlowDirection.VerticalOnly
}
}
}, },
new Box new Box
{ {
@ -38,18 +44,27 @@ namespace osu.Game.Overlays.Options
}; };
} }
private class SidebarScrollContainer : ScrollContainer
{
public SidebarScrollContainer()
{
Content.Anchor = Anchor.CentreLeft;
Content.Origin = Anchor.CentreLeft;
}
}
public class SidebarButton : Container public class SidebarButton : Container
{ {
private TextAwesome drawableIcon; private TextAwesome drawableIcon;
private Box backgroundBox; private Box backgroundBox;
public Action Action; public Action Action;
public FontAwesome Icon public FontAwesome Icon
{ {
get { return drawableIcon.Icon; } get { return drawableIcon.Icon; }
set { drawableIcon.Icon = value; } set { drawableIcon.Icon = value; }
} }
public SidebarButton() public SidebarButton()
{ {
Size = new Vector2(60); Size = new Vector2(60);
@ -69,20 +84,20 @@ namespace osu.Game.Overlays.Options
}, },
}; };
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs e) protected override bool OnMouseDown(InputState state, MouseDownEventArgs e)
{ {
Action?.Invoke(); Action?.Invoke();
backgroundBox.FlashColour(Color4.White, 400); backgroundBox.FlashColour(Color4.White, 400);
return true; return true;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(InputState state)
{ {
backgroundBox.FadeTo(0.4f, 200); backgroundBox.FadeTo(0.4f, 200);
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(InputState state)
{ {
backgroundBox.FadeTo(0, 200); backgroundBox.FadeTo(0, 200);