1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 09:02:55 +08:00

Update in line with framework changes.

This commit is contained in:
smoogipooo 2017-08-28 12:33:31 +09:00
parent b5c1c05af5
commit 66db3389f6
4 changed files with 64 additions and 45 deletions

@ -1 +1 @@
Subproject commit 743ad1129edbc1cb8faa14ebc9a6d1846780795c
Subproject commit 2958d6fda1be252a0f479609090e72814b177c91

View File

@ -8,6 +8,7 @@ using osu.Framework.Audio.Sample;
using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input;
using osu.Game.Graphics.Sprites;
@ -54,8 +55,7 @@ namespace osu.Game.Graphics.UserInterface
private SampleChannel sampleClick;
private SampleChannel sampleHover;
private OsuSpriteText text;
private OsuSpriteText textBold;
private TextContainer text;
public DrawableOsuContextMenuItem(Menu<TItem> menu, TItem item)
: base(item)
@ -79,13 +79,13 @@ namespace osu.Game.Graphics.UserInterface
switch (Item.Type)
{
case MenuItemType.Standard:
textBold.Colour = text.Colour = Color4.White;
text.Colour = Color4.White;
break;
case MenuItemType.Destructive:
textBold.Colour = text.Colour = Color4.Red;
text.Colour = Color4.Red;
break;
case MenuItemType.Highlighted:
textBold.Colour = text.Colour = OsuColour.FromHex(@"ffcc22");
text.Colour = OsuColour.FromHex(@"ffcc22");
break;
}
}
@ -93,15 +93,15 @@ namespace osu.Game.Graphics.UserInterface
protected override bool OnHover(InputState state)
{
sampleHover.Play();
textBold.FadeIn(transition_length, Easing.OutQuint);
text.FadeOut(transition_length, Easing.OutQuint);
text.BoldText.FadeIn(transition_length, Easing.OutQuint);
text.NormalText.FadeOut(transition_length, Easing.OutQuint);
return base.OnHover(state);
}
protected override void OnHoverLost(InputState state)
{
textBold.FadeOut(transition_length, Easing.OutQuint);
text.FadeIn(transition_length, Easing.OutQuint);
text.BoldText.FadeOut(transition_length, Easing.OutQuint);
text.NormalText.FadeIn(transition_length, Easing.OutQuint);
base.OnHoverLost(state);
}
@ -111,44 +111,51 @@ namespace osu.Game.Graphics.UserInterface
return base.OnClick(state);
}
protected override Drawable CreateContent()
protected override Drawable CreateContent() => text = new TextContainer();
private class TextContainer : Container, IHasText
{
var container = new Container
public string Text
{
AutoSizeAxes = Axes.Both,
Anchor = Anchor.CentreLeft,
Origin = Anchor.CentreLeft,
get { return NormalText.Text; }
set
{
NormalText.Text = value;
BoldText.Text = value;
}
}
public readonly SpriteText NormalText;
public readonly SpriteText BoldText;
public TextContainer()
{
Anchor = Anchor.CentreLeft;
Origin = Anchor.CentreLeft;
AutoSizeAxes = Axes.Both;
Children = new Drawable[]
{
text = new OsuSpriteText
NormalText = new OsuSpriteText
{
Anchor = Anchor.CentreLeft,
Origin = Anchor.CentreLeft,
TextSize = text_size,
Text = Item.Text,
Margin = new MarginPadding { Horizontal = margin_horizontal, Vertical = MARGIN_VERTICAL },
},
textBold = new OsuSpriteText
BoldText = new OsuSpriteText
{
AlwaysPresent = true,
Alpha = 0,
Anchor = Anchor.CentreLeft,
Origin = Anchor.CentreLeft,
TextSize = text_size,
Text = Item.Text,
Font = @"Exo2.0-Bold",
Margin = new MarginPadding { Horizontal = margin_horizontal, Vertical = MARGIN_VERTICAL },
}
}
};
Item.Text.ValueChanged += newText =>
{
text.Text = newText;
textBold.Text = newText;
};
return container;
};
}
}
}
#endregion

View File

@ -81,8 +81,7 @@ namespace osu.Game.Graphics.UserInterface
{
public readonly Bindable<Color4?> AccentColour = new Bindable<Color4?>();
private SpriteIcon chevron;
protected OsuSpriteText Label;
private TextContainer textContainer;
private Color4 nonAccentHoverColour;
private Color4 nonAccentSelectedColour;
@ -117,19 +116,32 @@ namespace osu.Game.Graphics.UserInterface
protected override void UpdateForegroundColour()
{
base.UpdateForegroundColour();
chevron.Alpha = IsHovered ? 1 : 0;
textContainer.Chevron.Alpha = IsHovered ? 1 : 0;
}
protected override Drawable CreateContent()
protected override Drawable CreateContent() => textContainer = new TextContainer();
protected class TextContainer : FillFlowContainer, IHasText
{
var container = new FillFlowContainer
public string Text
{
Direction = FillDirection.Horizontal,
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y,
get { return Label.Text; }
set { Label.Text = value; }
}
public readonly OsuSpriteText Label;
public readonly SpriteIcon Chevron;
public TextContainer()
{
RelativeSizeAxes = Axes.X;
AutoSizeAxes = Axes.Y;
Direction = FillDirection.Horizontal;
Children = new Drawable[]
{
chevron = new SpriteIcon
Chevron = new SpriteIcon
{
AlwaysPresent = true,
Icon = FontAwesome.fa_chevron_right,
@ -142,15 +154,11 @@ namespace osu.Game.Graphics.UserInterface
},
Label = new OsuSpriteText
{
Text = Item.Text,
Origin = Anchor.CentreLeft,
Anchor = Anchor.CentreLeft,
}
}
};
Item.Text.ValueChanged += newText => Label.Text = newText;
return container;
};
}
}
}
#endregion

View File

@ -316,9 +316,13 @@ namespace osu.Game.Overlays.Settings.Sections.General
: base(item)
{
Foreground.Padding = new MarginPadding { Top = 5, Bottom = 5, Left = 10, Right = 5 };
Label.Margin = new MarginPadding { Left = UserDropdownHeader.LABEL_LEFT_MARGIN - 11 };
CornerRadius = 5;
}
protected override Drawable CreateContent() => new TextContainer
{
Label = { Margin = new MarginPadding { Left = UserDropdownHeader.LABEL_LEFT_MARGIN - 11 } }
};
}
}