Added osu!direct header and filter control

This commit is contained in:
DrabWeb
2017-05-17 05:58:34 -03:00
parent c78f4cc7ab
commit 9ba356f2c6
12 changed files with 601 additions and 7 deletions

View File

@ -113,7 +113,7 @@ namespace osu.Game.Graphics.UserInterface
}
}
protected class OsuDropdownHeader : DropdownHeader
public class OsuDropdownHeader : DropdownHeader
{
private readonly SpriteText label;
protected override string Label

View File

@ -0,0 +1,32 @@
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System;
using System.ComponentModel;
using System.Reflection;
using System.Collections.Generic;
namespace osu.Game.Graphics.UserInterface
{
public class OsuEnumDropdown<T> : OsuDropdown<T>
{
public OsuEnumDropdown()
{
if (!typeof(T).IsEnum)
throw new InvalidOperationException("SettingsDropdown only supports enums as the generic type argument");
List<KeyValuePair<string, T>> items = new List<KeyValuePair<string, T>>();
foreach(var val in (T[])Enum.GetValues(typeof(T)))
{
var field = typeof(T).GetField(Enum.GetName(typeof(T), val));
items.Add(
new KeyValuePair<string, T>(
field.GetCustomAttribute<DescriptionAttribute>()?.Description ?? Enum.GetName(typeof(T), val),
val
)
);
}
Items = items;
}
}
}

View File

@ -57,9 +57,9 @@ namespace osu.Game.Graphics.UserInterface
}
}
private class OsuTabItem : TabItem<T>
public class OsuTabItem : TabItem<T>
{
private readonly SpriteText text;
protected readonly SpriteText Text;
private readonly Box box;
private Color4? accentColour;
@ -70,7 +70,7 @@ namespace osu.Game.Graphics.UserInterface
{
accentColour = value;
if (!Active)
text.Colour = value;
Text.Colour = value;
}
}
@ -94,13 +94,13 @@ namespace osu.Game.Graphics.UserInterface
private void fadeActive()
{
box.FadeIn(transition_length, EasingTypes.OutQuint);
text.FadeColour(Color4.White, transition_length, EasingTypes.OutQuint);
Text.FadeColour(Color4.White, transition_length, EasingTypes.OutQuint);
}
private void fadeInactive()
{
box.FadeOut(transition_length, EasingTypes.OutQuint);
text.FadeColour(AccentColour, transition_length, EasingTypes.OutQuint);
Text.FadeColour(AccentColour, transition_length, EasingTypes.OutQuint);
}
protected override bool OnHover(InputState state)
@ -130,7 +130,7 @@ namespace osu.Game.Graphics.UserInterface
Children = new Drawable[]
{
text = new OsuSpriteText
Text = new OsuSpriteText
{
Margin = new MarginPadding { Top = 5, Bottom = 5 },
Origin = Anchor.BottomLeft,