Use PageTabControl.

This commit is contained in:
Huo Yaoyuan 2017-06-09 16:01:16 +08:00
parent 51107acdff
commit 140c74cd2a
2 changed files with 23 additions and 10 deletions

View File

@ -23,12 +23,14 @@ namespace osu.Game.Graphics.UserInterface
Height = 30;
}
private class PageTabItem : TabItem<T>
public class PageTabItem : TabItem<T>
{
private const float transition_duration = 100;
private readonly Box box;
protected readonly SpriteText Text;
public override bool Active
{
get { return base.Active; }
@ -51,12 +53,12 @@ namespace osu.Game.Graphics.UserInterface
Children = new Drawable[]
{
new OsuSpriteText
Text = new OsuSpriteText
{
Margin = new MarginPadding { Top = 8, Bottom = 8 },
Origin = Anchor.BottomLeft,
Anchor = Anchor.BottomLeft,
Text = (value as Enum).GetDescription() ?? value.ToString(),
Text = (value as Enum)?.GetDescription() ?? value.ToString(),
TextSize = 14,
Font = @"Exo2.0-Bold",
},

View File

@ -1,6 +1,7 @@
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using OpenTK;
using osu.Framework.Allocation;
using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics;
@ -83,31 +84,41 @@ namespace osu.Game.Users
};
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
private class ProfileTabControl : PageTabControl<ProfileSection>
{
tabs.AccentColour = colours.Yellow;
}
private readonly Box bottom;
private class ProfileTabControl : OsuTabControl<ProfileSection>
{
public ProfileTabControl()
{
TabContainer.RelativeSizeAxes &= ~Axes.X;
TabContainer.AutoSizeAxes |= Axes.X;
TabContainer.Anchor |= Anchor.x1;
TabContainer.Origin |= Anchor.x1;
Add(bottom = new Box
{
RelativeSizeAxes = Axes.X,
Height = 1,
Anchor = Anchor.BottomCentre,
Origin = Anchor.BottomCentre,
EdgeSmoothness = new Vector2(1)
});
}
protected override TabItem<ProfileSection> CreateTabItem(ProfileSection value) => new ProfileTabItem(value);
private class ProfileTabItem : OsuTabItem
private class ProfileTabItem : PageTabItem
{
public ProfileTabItem(ProfileSection value) : base(value)
{
Text.Text = value.Title;
}
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
bottom.Colour = colours.Yellow;
}
}
}
}