diff --git a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs index 9edfd9783a..af1f458462 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapPanel.cs @@ -14,6 +14,7 @@ using osu.Game.Graphics.UserInterface; using OpenTK; using OpenTK.Graphics; using osu.Framework.Input; +using osu.Game.Graphics.Sprites; namespace osu.Game.Beatmaps.Drawables { @@ -102,7 +103,7 @@ namespace osu.Game.Beatmaps.Drawables Spacing = new Vector2(4, 0), Children = new[] { - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-Medium", Text = beatmap.Version, @@ -110,7 +111,7 @@ namespace osu.Game.Beatmaps.Drawables Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft }, - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-Medium", Text = "mapped by", @@ -118,7 +119,7 @@ namespace osu.Game.Beatmaps.Drawables Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft }, - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-MediumItalic", Text = $"{(beatmap.Metadata ?? beatmap.BeatmapSet.Metadata).Author}", diff --git a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs index d961cd067c..cb717422bf 100644 --- a/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs +++ b/osu.Game/Beatmaps/Drawables/BeatmapSetHeader.cs @@ -12,6 +12,7 @@ using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Game.Configuration; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; using OpenTK; using OpenTK.Graphics; @@ -43,14 +44,14 @@ namespace osu.Game.Beatmaps.Drawables AutoSizeAxes = Axes.Both, Children = new[] { - title = new SpriteText + title = new OsuSpriteText { Font = @"Exo2.0-BoldItalic", Text = beatmap.BeatmapSetInfo.Metadata.Title, TextSize = 22, Shadow = true, }, - artist = new SpriteText + artist = new OsuSpriteText { Margin = new MarginPadding { Top = -1 }, Font = @"Exo2.0-SemiBoldItalic", diff --git a/osu.Game/Graphics/Sprites/OsuSpriteText.cs b/osu.Game/Graphics/Sprites/OsuSpriteText.cs new file mode 100644 index 0000000000..7e91ae8966 --- /dev/null +++ b/osu.Game/Graphics/Sprites/OsuSpriteText.cs @@ -0,0 +1,18 @@ +//Copyright (c) 2007-2016 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using osu.Framework.Graphics.Sprites; + +namespace osu.Game.Graphics.Sprites +{ + class OsuSpriteText : SpriteText + { + public const float FONT_SIZE = 16; + + public OsuSpriteText() + { + Shadow = true; + TextSize = FONT_SIZE; + } + } +} diff --git a/osu.Game/Graphics/UserInterface/BackButton.cs b/osu.Game/Graphics/UserInterface/BackButton.cs index 636697c3d5..4d4ed73a95 100644 --- a/osu.Game/Graphics/UserInterface/BackButton.cs +++ b/osu.Game/Graphics/UserInterface/BackButton.cs @@ -4,6 +4,7 @@ using osu.Framework.Allocation; using osu.Framework.Audio; using osu.Framework.Graphics; +using osu.Game.Graphics.Sprites; namespace osu.Game.Graphics.UserInterface { diff --git a/osu.Game/Graphics/UserInterface/OsuButton.cs b/osu.Game/Graphics/UserInterface/OsuButton.cs index 7314d0006e..ed7b9ffb29 100644 --- a/osu.Game/Graphics/UserInterface/OsuButton.cs +++ b/osu.Game/Graphics/UserInterface/OsuButton.cs @@ -5,31 +5,81 @@ using System; using OpenTK.Graphics; using osu.Framework.Allocation; using osu.Framework.Graphics; +using osu.Framework.Graphics.Sprites; +using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.UserInterface; +using osu.Framework.Input; using osu.Game.Graphics.Backgrounds; +using osu.Game.Graphics.Sprites; +using osu.Game.Overlays; namespace osu.Game.Graphics.UserInterface { public class OsuButton : Button { + private Box hover; + public OsuButton() { Height = 40; } - + + protected override SpriteText CreateText() => new OsuSpriteText + { + Depth = -1, + Origin = Anchor.Centre, + Anchor = Anchor.Centre, + Font = @"Exo2.0-Bold", + }; + [BackgroundDependencyLoader] private void load(OsuColour colours) { - Colour = colours.BlueDark; - Masking = true; - CornerRadius = 5; + Colour = colours.BlueDark; + + Content.Masking = true; + Content.CornerRadius = 5; - Add(new Triangles + Add(new Drawable[] { - RelativeSizeAxes = Axes.Both, - ColourDark = colours.BlueDarker, - ColourLight = colours.Blue, + new Triangles + { + RelativeSizeAxes = Axes.Both, + ColourDark = colours.BlueDarker, + ColourLight = colours.Blue, + }, + hover = new Box + { + RelativeSizeAxes = Axes.Both, + BlendingMode = BlendingMode.Additive, + Colour = Color4.White.Opacity(0.1f), + Alpha = 0, + }, }); } + + protected override bool OnHover(InputState state) + { + hover.FadeIn(200); + return base.OnHover(state); + } + + protected override void OnHoverLost(InputState state) + { + hover.FadeOut(200); + base.OnHoverLost(state); + } + + protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) + { + Content.ScaleTo(0.9f, 4000, EasingTypes.OutQuint); + return base.OnMouseDown(state, args); + } + + protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) + { + Content.ScaleTo(1, 1000, EasingTypes.OutElastic); + return base.OnMouseUp(state, args); + } } } \ No newline at end of file diff --git a/osu.Game/Overlays/Options/CheckBoxOption.cs b/osu.Game/Graphics/UserInterface/OsuCheckbox.cs similarity index 90% rename from osu.Game/Overlays/Options/CheckBoxOption.cs rename to osu.Game/Graphics/UserInterface/OsuCheckbox.cs index cc1af1e3c9..0c3869e848 100644 --- a/osu.Game/Overlays/Options/CheckBoxOption.cs +++ b/osu.Game/Graphics/UserInterface/OsuCheckbox.cs @@ -13,14 +13,15 @@ using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.UserInterface; +using osu.Framework.Input; +using osu.Game.Graphics.Sprites; +using osu.Game.Overlays; using OpenTK; using OpenTK.Graphics; -using osu.Framework.Input; -using osu.Game.Graphics; -namespace osu.Game.Overlays.Options +namespace osu.Game.Graphics.UserInterface { - public class CheckBoxOption : CheckBox + public class OsuCheckbox : CheckBox { private Bindable bindable; @@ -70,15 +71,15 @@ namespace osu.Game.Overlays.Options private AudioSample sampleChecked; private AudioSample sampleUnchecked; - public CheckBoxOption() + public OsuCheckbox() { AutoSizeAxes = Axes.Y; RelativeSizeAxes = Axes.X; Children = new Drawable[] { - labelSpriteText = new SpriteText(), - light = new Light() + labelSpriteText = new OsuSpriteText(), + light = new Light { Anchor = Anchor.CentreRight, Origin = Anchor.CentreRight, @@ -145,7 +146,7 @@ namespace osu.Game.Overlays.Options public Light() { - Size = new Vector2(40, 12); + Size = new Vector2(20, 12); Masking = true; @@ -187,11 +188,13 @@ namespace osu.Game.Overlays.Options { if (value) { + ResizeTo(new Vector2(40, 12), 500, EasingTypes.OutQuint); FadeColour(glowingColour, 500, EasingTypes.OutQuint); FadeGlowTo(1, 500, EasingTypes.OutQuint); } else { + ResizeTo(new Vector2(20, 12), 500, EasingTypes.OutQuint); FadeGlowTo(0, 500); FadeColour(idleColour, 500); } diff --git a/osu.Game/Graphics/UserInterface/OsuTextBox.cs b/osu.Game/Graphics/UserInterface/OsuTextBox.cs index 5041e7ded9..a311186ed7 100644 --- a/osu.Game/Graphics/UserInterface/OsuTextBox.cs +++ b/osu.Game/Graphics/UserInterface/OsuTextBox.cs @@ -5,16 +5,22 @@ using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.UserInterface; using osu.Framework.Input; +using osu.Game.Graphics.Sprites; +using osu.Game.Overlays; using OpenTK.Graphics; namespace osu.Game.Graphics.UserInterface { public class OsuTextBox : TextBox { + protected override Color4 BackgroundUnfocused => Color4.Black.Opacity(0.5f); + protected override Color4 BackgroundFocused => OsuColour.Gray(0.3f).Opacity(0.8f); + protected override Color4 BackgroundCommit => BorderColour; + public OsuTextBox() { Height = 40; - TextContainer.Height = 0.6f; + TextContainer.Height = OsuSpriteText.FONT_SIZE / Height; CornerRadius = 5; } diff --git a/osu.Game/Graphics/UserInterface/RollingCounter.cs b/osu.Game/Graphics/UserInterface/RollingCounter.cs index e55001fd99..98c9941665 100644 --- a/osu.Game/Graphics/UserInterface/RollingCounter.cs +++ b/osu.Game/Graphics/UserInterface/RollingCounter.cs @@ -8,6 +8,7 @@ using osu.Framework.Graphics.Transformations; using System; using System.Collections.Generic; using System.Diagnostics; +using osu.Game.Graphics.Sprites; namespace osu.Game.Graphics.UserInterface { @@ -106,7 +107,7 @@ namespace osu.Game.Graphics.UserInterface { Children = new Drawable[] { - DisplayedCountSpriteText = new SpriteText(), + DisplayedCountSpriteText = new OsuSpriteText(), }; TextSize = 40; diff --git a/osu.Game/Graphics/UserInterface/TwoLayerButton.cs b/osu.Game/Graphics/UserInterface/TwoLayerButton.cs index 4bb57154cc..22e11e21ad 100644 --- a/osu.Game/Graphics/UserInterface/TwoLayerButton.cs +++ b/osu.Game/Graphics/UserInterface/TwoLayerButton.cs @@ -10,6 +10,7 @@ using osu.Framework.Graphics.Transformations; using osu.Framework.Input; using OpenTK; using OpenTK.Graphics; +using osu.Game.Graphics.Sprites; namespace osu.Game.Graphics.UserInterface { @@ -131,7 +132,7 @@ namespace osu.Game.Graphics.UserInterface }, } }, - text = new SpriteText + text = new OsuSpriteText { Origin = Anchor.Centre, Anchor = Anchor.Centre, diff --git a/osu.Game/Graphics/UserInterface/Volume/VolumeMeter.cs b/osu.Game/Graphics/UserInterface/Volume/VolumeMeter.cs index 37259289ce..66d946c967 100644 --- a/osu.Game/Graphics/UserInterface/Volume/VolumeMeter.cs +++ b/osu.Game/Graphics/UserInterface/Volume/VolumeMeter.cs @@ -8,6 +8,7 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Input; +using osu.Game.Graphics.Sprites; using OpenTK; using OpenTK.Graphics; @@ -51,7 +52,7 @@ namespace osu.Game.Graphics.UserInterface.Volume } } }, - new SpriteText + new OsuSpriteText { Text = meterName, Anchor = Anchor.BottomCentre, diff --git a/osu.Game/Modes/UI/ComboCounter.cs b/osu.Game/Modes/UI/ComboCounter.cs index b150111387..5fbc98d8f8 100644 --- a/osu.Game/Modes/UI/ComboCounter.cs +++ b/osu.Game/Modes/UI/ComboCounter.cs @@ -7,6 +7,7 @@ using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.MathUtils; +using osu.Game.Graphics.Sprites; namespace osu.Game.Modes.UI { @@ -100,11 +101,11 @@ namespace osu.Game.Modes.UI Children = new Drawable[] { - DisplayedCountSpriteText = new SpriteText + DisplayedCountSpriteText = new OsuSpriteText { Alpha = 0, }, - PopOutCount = new SpriteText + PopOutCount = new OsuSpriteText { Alpha = 0, Margin = new MarginPadding(0.05f), diff --git a/osu.Game/Online/Chat/Drawables/ChannelDisplay.cs b/osu.Game/Online/Chat/Drawables/ChannelDisplay.cs index 041163b19a..b9437ae811 100644 --- a/osu.Game/Online/Chat/Drawables/ChannelDisplay.cs +++ b/osu.Game/Online/Chat/Drawables/ChannelDisplay.cs @@ -8,6 +8,7 @@ using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; +using osu.Game.Graphics.Sprites; using OpenTK; namespace osu.Game.Online.Chat.Drawables @@ -27,7 +28,7 @@ namespace osu.Game.Online.Chat.Drawables Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = channel.Name, TextSize = 50, diff --git a/osu.Game/Online/Chat/Drawables/ChatLine.cs b/osu.Game/Online/Chat/Drawables/ChatLine.cs index 2dd3425bda..64fc031669 100644 --- a/osu.Game/Online/Chat/Drawables/ChatLine.cs +++ b/osu.Game/Online/Chat/Drawables/ChatLine.cs @@ -5,6 +5,7 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; +using osu.Game.Graphics.Sprites; using OpenTK; using OpenTK.Graphics; @@ -31,13 +32,13 @@ namespace osu.Game.Online.Chat.Drawables Size = new Vector2(padding, text_size), Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = Message.Timestamp.LocalDateTime.ToLongTimeString(), TextSize = text_size, Colour = Color4.Gray }, - new SpriteText + new OsuSpriteText { Text = Message.User.Name, TextSize = text_size, @@ -53,7 +54,7 @@ namespace osu.Game.Online.Chat.Drawables Padding = new MarginPadding { Left = padding + 10 }, Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = Message.Content, TextSize = text_size, diff --git a/osu.Game/Overlays/ChatOverlay.cs b/osu.Game/Overlays/ChatOverlay.cs index 17a1a2604a..804cd9f0ab 100644 --- a/osu.Game/Overlays/ChatOverlay.cs +++ b/osu.Game/Overlays/ChatOverlay.cs @@ -14,6 +14,7 @@ using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Threading; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; using osu.Game.Online.API; using osu.Game.Online.API.Requests; using osu.Game.Online.Chat; @@ -137,7 +138,7 @@ namespace osu.Game.Overlays // return; SpriteText loading; - Add(loading = new SpriteText + Add(loading = new OsuSpriteText { Text = @"Loading available channels...", Anchor = Anchor.Centre, diff --git a/osu.Game/Overlays/LoginOverlay.cs b/osu.Game/Overlays/LoginOverlay.cs index 91bea093db..0c2c00d3f0 100644 --- a/osu.Game/Overlays/LoginOverlay.cs +++ b/osu.Game/Overlays/LoginOverlay.cs @@ -8,7 +8,7 @@ using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Game.Graphics; -using osu.Game.Overlays.Options.General; +using osu.Game.Overlays.Options.Sections.General; using OpenTK; using OpenTK.Graphics; @@ -33,7 +33,7 @@ namespace osu.Game.Overlays new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.Black, - Alpha = 0.8f, + Alpha = 0.6f, }, new Container { diff --git a/osu.Game/Overlays/MusicController.cs b/osu.Game/Overlays/MusicController.cs index fa70841e5c..36410d6a76 100644 --- a/osu.Game/Overlays/MusicController.cs +++ b/osu.Game/Overlays/MusicController.cs @@ -23,6 +23,7 @@ using osu.Game.Configuration; using osu.Game.Database; using osu.Game.Graphics; using osu.Framework.Graphics.Primitives; +using osu.Game.Graphics.Sprites; namespace osu.Game.Overlays { @@ -95,7 +96,7 @@ namespace osu.Game.Overlays RelativeSizeAxes = Axes.Both, Children = new Drawable[] { - title = new SpriteText + title = new OsuSpriteText { Origin = Anchor.BottomCentre, Anchor = Anchor.TopCentre, @@ -105,7 +106,7 @@ namespace osu.Game.Overlays Text = @"Nothing to play", Font = @"Exo2.0-MediumItalic" }, - artist = new SpriteText + artist = new OsuSpriteText { Origin = Anchor.TopCentre, Anchor = Anchor.TopCentre, diff --git a/osu.Game/Overlays/Options/DropdownOption.cs b/osu.Game/Overlays/Options/OptionDropdown.cs similarity index 86% rename from osu.Game/Overlays/Options/DropdownOption.cs rename to osu.Game/Overlays/Options/OptionDropdown.cs index 6262673734..8bd9e313c9 100644 --- a/osu.Game/Overlays/Options/DropdownOption.cs +++ b/osu.Game/Overlays/Options/OptionDropdown.cs @@ -12,16 +12,16 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.UserInterface; -using osu.Game.Configuration; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; namespace osu.Game.Overlays.Options { - public class DropdownOption : FlowContainer + public class OptionDropdown : FlowContainer { private DropDownMenu dropdown; private SpriteText text; - + public string LabelText { get { return text.Text; } @@ -31,7 +31,7 @@ namespace osu.Game.Overlays.Options text.Alpha = string.IsNullOrEmpty(value) ? 0 : 1; } } - + public Bindable Bindable { get { return bindable; } @@ -56,7 +56,7 @@ namespace osu.Game.Overlays.Options { bindable.Value = dropdown.SelectedValue; } - + protected override void Dispose(bool isDisposing) { bindable.ValueChanged -= Bindable_ValueChanged; @@ -64,7 +64,7 @@ namespace osu.Game.Overlays.Options base.Dispose(isDisposing); } - public DropdownOption() + public OptionDropdown() { if (!typeof(T).IsEnum) throw new InvalidOperationException("OptionsDropdown only supports enums as the generic type argument"); @@ -73,7 +73,9 @@ namespace osu.Game.Overlays.Options AutoSizeAxes = Axes.Y; Children = new Drawable[] { - text = new SpriteText { Alpha = 0 }, + text = new OsuSpriteText { + Alpha = 0, + }, dropdown = new StyledDropDownMenu { Margin = new MarginPadding { Top = 5 }, @@ -83,7 +85,7 @@ namespace osu.Game.Overlays.Options }; dropdown.ValueChanged += Dropdown_ValueChanged; } - + private class StyledDropDownMenu : DropDownMenu { protected override float DropDownListSpacing => 4; @@ -92,7 +94,7 @@ namespace osu.Game.Overlays.Options { return new StyledDropDownComboBox(); } - + protected override IEnumerable> GetDropDownItems(IEnumerable values) { return values.Select(v => @@ -101,7 +103,7 @@ namespace osu.Game.Overlays.Options return new StyledDropDownMenuItem( field.GetCustomAttribute()?.Description ?? field.Name, v); }); - + } public StyledDropDownMenu() @@ -143,9 +145,16 @@ namespace osu.Game.Overlays.Options { Foreground.Padding = new MarginPadding(4); + AutoSizeAxes = Axes.None; + Height = 40; + Children = new[] { - label = new SpriteText(), + label = new OsuSpriteText + { + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + }, new TextAwesome { Icon = FontAwesome.fa_chevron_down, @@ -185,11 +194,16 @@ namespace osu.Game.Overlays.Options { Icon = FontAwesome.fa_chevron_right, Colour = Color4.Black, + TextSize = 12, Margin = new MarginPadding { Right = 3 }, Origin = Anchor.CentreLeft, Anchor = Anchor.CentreLeft, }, - new SpriteText { Text = text } + new OsuSpriteText { + Text = text, + Origin = Anchor.CentreLeft, + Anchor = Anchor.CentreLeft, + } } } }; diff --git a/osu.Game/Overlays/Options/OptionLabel.cs b/osu.Game/Overlays/Options/OptionLabel.cs new file mode 100644 index 0000000000..9cc548c7ff --- /dev/null +++ b/osu.Game/Overlays/Options/OptionLabel.cs @@ -0,0 +1,19 @@ +//Copyright (c) 2007-2016 ppy Pty Ltd . +//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using osu.Framework.Allocation; +using osu.Framework.Graphics.Sprites; +using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; + +namespace osu.Game.Overlays.Options +{ + class OptionLabel : OsuSpriteText + { + [BackgroundDependencyLoader] + private void load(OsuColour colour) + { + Colour = colour.Gray6; + } + } +} diff --git a/osu.Game/Overlays/Options/SliderOption.cs b/osu.Game/Overlays/Options/OptionSlider.cs similarity index 92% rename from osu.Game/Overlays/Options/SliderOption.cs rename to osu.Game/Overlays/Options/OptionSlider.cs index e2e387d348..d48dd1d234 100644 --- a/osu.Game/Overlays/Options/SliderOption.cs +++ b/osu.Game/Overlays/Options/OptionSlider.cs @@ -18,10 +18,11 @@ using osu.Framework.Graphics.UserInterface; using osu.Framework.Input; using osu.Game.Graphics; using System.Linq; +using osu.Game.Graphics.Sprites; namespace osu.Game.Overlays.Options { - public class SliderOption : FlowContainer where T : struct + public class OptionSlider : FlowContainer where T : struct { private SliderBar slider; private SpriteText text; @@ -42,14 +43,16 @@ namespace osu.Game.Overlays.Options set { slider.Bindable = value; } } - public SliderOption() + public OptionSlider() { Direction = FlowDirection.VerticalOnly; RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; Children = new Drawable[] { - text = new SpriteText { Alpha = 0 }, + text = new OsuSpriteText { + Alpha = 0, + }, slider = new OsuSliderBar { Margin = new MarginPadding { Top = 5 }, @@ -76,7 +79,7 @@ namespace osu.Game.Overlays.Options public OsuSliderBar() { - Height = 22; + Height = 20; Padding = new MarginPadding { Left = Height / 2, Right = Height / 2 }; Children = new Drawable[] { diff --git a/osu.Game/Overlays/Options/TextBoxOption.cs b/osu.Game/Overlays/Options/OptionTextBox.cs similarity index 96% rename from osu.Game/Overlays/Options/TextBoxOption.cs rename to osu.Game/Overlays/Options/OptionTextBox.cs index 6edd34e318..101ba2c0c9 100644 --- a/osu.Game/Overlays/Options/TextBoxOption.cs +++ b/osu.Game/Overlays/Options/OptionTextBox.cs @@ -8,7 +8,7 @@ using osu.Game.Graphics.UserInterface; namespace osu.Game.Overlays.Options { - public class TextBoxOption : OsuTextBox + public class OptionTextBox : OsuTextBox { private Bindable bindable; diff --git a/osu.Game/Overlays/Options/OptionsSection.cs b/osu.Game/Overlays/Options/OptionsSection.cs index 5a5f22275b..af483d2b88 100644 --- a/osu.Game/Overlays/Options/OptionsSection.cs +++ b/osu.Game/Overlays/Options/OptionsSection.cs @@ -9,6 +9,7 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; namespace osu.Game.Overlays.Options { @@ -51,7 +52,7 @@ namespace osu.Game.Overlays.Options AutoSizeAxes = Axes.Y, Children = new[] { - headerLabel = new SpriteText + headerLabel = new OsuSpriteText { TextSize = headerSize, Text = Header, @@ -60,7 +61,7 @@ namespace osu.Game.Overlays.Options { Margin = new MarginPadding { Top = headerSize + headerMargin }, Direction = FlowDirection.VerticalOnly, - Spacing = new Vector2(0, 50), + Spacing = new Vector2(0, 30), AutoSizeAxes = Axes.Y, RelativeSizeAxes = Axes.X, }, @@ -72,7 +73,7 @@ namespace osu.Game.Overlays.Options [BackgroundDependencyLoader] private void load(OsuColour colours) { - headerLabel.Colour = colours.Pink; + headerLabel.Colour = colours.Yellow; } } } \ No newline at end of file diff --git a/osu.Game/Overlays/Options/OptionsSubsection.cs b/osu.Game/Overlays/Options/OptionsSubsection.cs index b7b1ff4570..42e4b50558 100644 --- a/osu.Game/Overlays/Options/OptionsSubsection.cs +++ b/osu.Game/Overlays/Options/OptionsSubsection.cs @@ -1,14 +1,16 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using OpenTK; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Containers; -using osu.Framework.Graphics.Sprites; - +using OpenTK; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Primitives; +using osu.Framework.Graphics.Sprites; +using osu.Game.Graphics.Sprites; + namespace osu.Game.Overlays.Options { - public abstract class OptionsSubsection : Container + public abstract class OptionsSubsection : FlowContainer { private Container content; protected override Container Content => content; @@ -19,23 +21,21 @@ namespace osu.Game.Overlays.Options { RelativeSizeAxes = Axes.X; AutoSizeAxes = Axes.Y; + Direction = FlowDirection.VerticalOnly; AddInternal(new Drawable[] { + new OsuSpriteText + { + Text = Header.ToUpper(), + Margin = new MarginPadding { Bottom = 10 }, + Font = @"Exo2.0-Black", + }, content = new FlowContainer { Direction = FlowDirection.VerticalOnly, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Spacing = new Vector2(0, 5), - Children = new[] - { - new SpriteText - { - TextSize = 17, - Text = Header.ToUpper(), - Font = @"Exo2.0-Black", - } - } }, }); } diff --git a/osu.Game/Overlays/Options/Audio/AudioDevicesOptions.cs b/osu.Game/Overlays/Options/Sections/Audio/AudioDevicesOptions.cs similarity index 71% rename from osu.Game/Overlays/Options/Audio/AudioDevicesOptions.cs rename to osu.Game/Overlays/Options/Sections/Audio/AudioDevicesOptions.cs index 5ad57bef53..b9171cd6f6 100644 --- a/osu.Game/Overlays/Options/Audio/AudioDevicesOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Audio/AudioDevicesOptions.cs @@ -1,9 +1,7 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics.Sprites; - -namespace osu.Game.Overlays.Options.Audio +namespace osu.Game.Overlays.Options.Sections.Audio { public class AudioDevicesOptions : OptionsSubsection { @@ -13,7 +11,7 @@ namespace osu.Game.Overlays.Options.Audio { Children = new[] { - new SpriteText { Text = "Output device: TODO dropdown" } + new OptionLabel { Text = "Output device: TODO dropdown" } }; } } diff --git a/osu.Game/Overlays/Options/Audio/OffsetAdjustmentOptions.cs b/osu.Game/Overlays/Options/Sections/Audio/OffsetOptions.cs similarity index 81% rename from osu.Game/Overlays/Options/Audio/OffsetAdjustmentOptions.cs rename to osu.Game/Overlays/Options/Sections/Audio/OffsetOptions.cs index df1d6aa9f9..2f7acdc8c0 100644 --- a/osu.Game/Overlays/Options/Audio/OffsetAdjustmentOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Audio/OffsetOptions.cs @@ -1,16 +1,15 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Allocation; -using osu.Framework.Configuration; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Game.Configuration; -using osu.Game.Graphics.UserInterface; - -namespace osu.Game.Overlays.Options.Audio +using osu.Framework.Allocation; +using osu.Framework.Configuration; +using osu.Framework.Graphics; +using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; + +namespace osu.Game.Overlays.Options.Sections.Audio { - public class OffsetAdjustmentOptions : OptionsSubsection + public class OffsetOptions : OptionsSubsection { protected override string Header => "Offset Adjustment"; @@ -19,7 +18,7 @@ namespace osu.Game.Overlays.Options.Audio { Children = new Drawable[] { - new SliderOption + new OptionSlider { LabelText = "Universal Offset", Bindable = (BindableInt)config.GetBindable(OsuConfig.Offset) diff --git a/osu.Game/Overlays/Options/Audio/VolumeOptions.cs b/osu.Game/Overlays/Options/Sections/Audio/VolumeOptions.cs similarity index 68% rename from osu.Game/Overlays/Options/Audio/VolumeOptions.cs rename to osu.Game/Overlays/Options/Sections/Audio/VolumeOptions.cs index 216e2e866d..45c26f4f4d 100644 --- a/osu.Game/Overlays/Options/Audio/VolumeOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Audio/VolumeOptions.cs @@ -1,15 +1,13 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Audio; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Audio +namespace osu.Game.Overlays.Options.Sections.Audio { public class VolumeOptions : OptionsSubsection { @@ -20,10 +18,10 @@ namespace osu.Game.Overlays.Options.Audio { Children = new Drawable[] { - new SliderOption { LabelText = "Master", Bindable = audio.Volume }, - new SliderOption { LabelText = "Effect", Bindable = audio.VolumeSample }, - new SliderOption { LabelText = "Music", Bindable = audio.VolumeTrack }, - new CheckBoxOption + new OptionSlider { LabelText = "Master", Bindable = audio.Volume }, + new OptionSlider { LabelText = "Effect", Bindable = audio.VolumeSample }, + new OptionSlider { LabelText = "Music", Bindable = audio.VolumeTrack }, + new OsuCheckbox { LabelText = "Ignore beatmap hitsounds", Bindable = config.GetBindable(OsuConfig.IgnoreBeatmapSamples) diff --git a/osu.Game/Overlays/Options/Audio/AudioSection.cs b/osu.Game/Overlays/Options/Sections/AudioSection.cs similarity index 83% rename from osu.Game/Overlays/Options/Audio/AudioSection.cs rename to osu.Game/Overlays/Options/Sections/AudioSection.cs index 6b55944a5c..91145bb75d 100644 --- a/osu.Game/Overlays/Options/Audio/AudioSection.cs +++ b/osu.Game/Overlays/Options/Sections/AudioSection.cs @@ -1,11 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; -using osu.Framework.Graphics; -using osu.Game.Graphics; - -namespace osu.Game.Overlays.Options.Audio +using osu.Framework; +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Overlays.Options.Sections.Audio; + +namespace osu.Game.Overlays.Options.Sections { public class AudioSection : OptionsSection { @@ -18,7 +19,7 @@ namespace osu.Game.Overlays.Options.Audio { new AudioDevicesOptions { Alpha = RuntimeInfo.IsWindows ? 1 : 0 }, new VolumeOptions(), - new OffsetAdjustmentOptions(), + new OffsetOptions(), }; } } diff --git a/osu.Game/Overlays/Options/EditorSection.cs b/osu.Game/Overlays/Options/Sections/EditorSection.cs similarity index 82% rename from osu.Game/Overlays/Options/EditorSection.cs rename to osu.Game/Overlays/Options/Sections/EditorSection.cs index 9d7d9bde95..2cdb0e7816 100644 --- a/osu.Game/Overlays/Options/EditorSection.cs +++ b/osu.Game/Overlays/Options/Sections/EditorSection.cs @@ -1,15 +1,14 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using OpenTK; -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; using osu.Game.Graphics; +using osu.Game.Graphics.UserInterface; +using OpenTK; -namespace osu.Game.Overlays.Options +namespace osu.Game.Overlays.Options.Sections { public class EditorSection : OptionsSection { @@ -22,32 +21,32 @@ namespace osu.Game.Overlays.Options content.Spacing = new Vector2(0, 5); Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Background video", Bindable = config.GetBindable(OsuConfig.VideoEditor) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Always use default skin", Bindable = config.GetBindable(OsuConfig.EditorDefaultSkin) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Snaking sliders", Bindable = config.GetBindable(OsuConfig.EditorSnakingSliders) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Hit animations", Bindable = config.GetBindable(OsuConfig.EditorHitAnimations) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Follow points", Bindable = config.GetBindable(OsuConfig.EditorFollowPoints) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Stacking", Bindable = config.GetBindable(OsuConfig.EditorStacking) diff --git a/osu.Game/Overlays/Options/Gameplay/GeneralGameplayOptions.cs b/osu.Game/Overlays/Options/Sections/Gameplay/GeneralOptions.cs similarity index 77% rename from osu.Game/Overlays/Options/Gameplay/GeneralGameplayOptions.cs rename to osu.Game/Overlays/Options/Sections/Gameplay/GeneralOptions.cs index 15ee80102d..c40401f0ea 100644 --- a/osu.Game/Overlays/Options/Gameplay/GeneralGameplayOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Gameplay/GeneralOptions.cs @@ -1,17 +1,15 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; -using osu.Framework.Allocation; -using osu.Framework.Configuration; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; -using osu.Game.Configuration; - -namespace osu.Game.Overlays.Options.Gameplay +using osu.Framework.Allocation; +using osu.Framework.Configuration; +using osu.Framework.Graphics; +using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; + +namespace osu.Game.Overlays.Options.Sections.Gameplay { - public class GeneralGameplayOptions : OptionsSubsection + public class GeneralOptions : OptionsSubsection { protected override string Header => "General"; @@ -20,42 +18,42 @@ namespace osu.Game.Overlays.Options.Gameplay { Children = new Drawable[] { - new SliderOption + new OptionSlider { LabelText = "Background dim", Bindable = (BindableInt)config.GetBindable(OsuConfig.DimLevel) }, - new DropdownOption + new OptionDropdown { LabelText = "Progress display", Bindable = config.GetBindable(OsuConfig.ProgressBarType) }, - new DropdownOption + new OptionDropdown { LabelText = "Score meter type", Bindable = config.GetBindable(OsuConfig.ScoreMeter) }, - new SliderOption + new OptionSlider { LabelText = "Score meter size", Bindable = (BindableDouble)config.GetBindable(OsuConfig.ScoreMeterScale) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Always show key overlay", Bindable = config.GetBindable(OsuConfig.KeyOverlay) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Show approach circle on first \"Hidden\" object", Bindable = config.GetBindable(OsuConfig.HiddenShowFirstApproach) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Scale osu!mania scroll speed with BPM", Bindable = config.GetBindable(OsuConfig.ManiaSpeedBPMScale) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Remember osu!mania scroll speed per beatmap", Bindable = config.GetBindable(OsuConfig.UsePerBeatmapManiaSpeed) diff --git a/osu.Game/Overlays/Options/Gameplay/SongSelectGameplayOptions.cs b/osu.Game/Overlays/Options/Sections/Gameplay/SongSelectOptions.cs similarity index 74% rename from osu.Game/Overlays/Options/Gameplay/SongSelectGameplayOptions.cs rename to osu.Game/Overlays/Options/Sections/Gameplay/SongSelectOptions.cs index e0f25cfea7..a1ea4e2286 100644 --- a/osu.Game/Overlays/Options/Gameplay/SongSelectGameplayOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Gameplay/SongSelectOptions.cs @@ -1,17 +1,14 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using System; -using osu.Framework.Allocation; -using osu.Framework.Configuration; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Game.Configuration; -using osu.Game.Graphics.UserInterface; - -namespace osu.Game.Overlays.Options.Gameplay +using osu.Framework.Allocation; +using osu.Framework.Configuration; +using osu.Framework.Graphics; +using osu.Game.Configuration; + +namespace osu.Game.Overlays.Options.Sections.Gameplay { - public class SongSelectGameplayOptions : OptionsSubsection + public class SongSelectOptions : OptionsSubsection { protected override string Header => "Song Select"; @@ -20,12 +17,12 @@ namespace osu.Game.Overlays.Options.Gameplay { Children = new Drawable[] { - new SliderOption + new OptionSlider { LabelText = "Display beatmaps from", Bindable = (BindableDouble)config.GetBindable(OsuConfig.DisplayStarsMinimum) }, - new SliderOption + new OptionSlider { LabelText = "up to", Bindable = (BindableDouble)config.GetBindable(OsuConfig.DisplayStarsMaximum) diff --git a/osu.Game/Overlays/Options/Gameplay/GameplaySection.cs b/osu.Game/Overlays/Options/Sections/GameplaySection.cs similarity index 67% rename from osu.Game/Overlays/Options/Gameplay/GameplaySection.cs rename to osu.Game/Overlays/Options/Sections/GameplaySection.cs index 3216d55837..875fa18fa6 100644 --- a/osu.Game/Overlays/Options/Gameplay/GameplaySection.cs +++ b/osu.Game/Overlays/Options/Sections/GameplaySection.cs @@ -1,10 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics; -using osu.Game.Graphics; - -namespace osu.Game.Overlays.Options.Gameplay +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Overlays.Options.Sections.Gameplay; + +namespace osu.Game.Overlays.Options.Sections { public class GameplaySection : OptionsSection { @@ -13,10 +14,10 @@ namespace osu.Game.Overlays.Options.Gameplay public GameplaySection() { - Children = new Drawable[] + base.Children = new Drawable[] { - new GeneralGameplayOptions(), - new SongSelectGameplayOptions(), + new Gameplay.GeneralOptions(), + new SongSelectOptions(), }; } } diff --git a/osu.Game/Overlays/Options/General/LanguageOptions.cs b/osu.Game/Overlays/Options/Sections/General/LanguageOptions.cs similarity index 77% rename from osu.Game/Overlays/Options/General/LanguageOptions.cs rename to osu.Game/Overlays/Options/Sections/General/LanguageOptions.cs index 351d541bd9..d47299616f 100644 --- a/osu.Game/Overlays/Options/General/LanguageOptions.cs +++ b/osu.Game/Overlays/Options/Sections/General/LanguageOptions.cs @@ -1,13 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; using osu.Framework.Allocation; +using osu.Framework.Graphics; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.General +namespace osu.Game.Overlays.Options.Sections.General { public class LanguageOptions : OptionsSubsection { @@ -18,13 +17,13 @@ namespace osu.Game.Overlays.Options.General { Children = new Drawable[] { - new SpriteText { Text = "TODO: Dropdown" }, - new CheckBoxOption + new OptionLabel { Text = "TODO: Dropdown" }, + new OsuCheckbox { LabelText = "Prefer metadata in original language", Bindable = config.GetBindable(OsuConfig.ShowUnicode) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Use alternative font for chat display", Bindable = config.GetBindable(OsuConfig.AlternativeChatFont) diff --git a/osu.Game/Overlays/Options/General/LoginOptions.cs b/osu.Game/Overlays/Options/Sections/General/LoginOptions.cs similarity index 89% rename from osu.Game/Overlays/Options/General/LoginOptions.cs rename to osu.Game/Overlays/Options/Sections/General/LoginOptions.cs index 6556c238a4..63417c1f0c 100644 --- a/osu.Game/Overlays/Options/General/LoginOptions.cs +++ b/osu.Game/Overlays/Options/Sections/General/LoginOptions.cs @@ -1,20 +1,19 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using System; -using OpenTK; -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.UserInterface; +using osu.Game.Configuration; +using osu.Game.Graphics.Sprites; using osu.Game.Graphics.UserInterface; using osu.Game.Online.API; -using osu.Game.Configuration; -using osu.Framework.Graphics.Primitives; +using OpenTK; -namespace osu.Game.Overlays.Options.General +namespace osu.Game.Overlays.Options.Sections.General { public class LoginOptions : OptionsSubsection, IOnlineComponent { @@ -53,7 +52,7 @@ namespace osu.Game.Overlays.Options.General case APIState.Failing: Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = "Connection failing :(", }, @@ -62,7 +61,7 @@ namespace osu.Game.Overlays.Options.General case APIState.Connecting: Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = "Connecting...", }, @@ -71,7 +70,7 @@ namespace osu.Game.Overlays.Options.General case APIState.Online: Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = $"Connected as {api.Username}!", }, @@ -92,8 +91,8 @@ namespace osu.Game.Overlays.Options.General private TextBox password; private APIAccess api; - private CheckBoxOption saveUsername; - private CheckBoxOption savePassword; + private OsuCheckbox saveUsername; + private OsuCheckbox savePassword; private void performLogin() { @@ -111,23 +110,21 @@ namespace osu.Game.Overlays.Options.General Spacing = new Vector2(0, 5); Children = new Drawable[] { - new SpriteText { Text = "Username" }, username = new OsuTextBox { RelativeSizeAxes = Axes.X, Text = api?.Username ?? string.Empty }, - new SpriteText { Text = "Password" }, password = new OsuPasswordTextBox { RelativeSizeAxes = Axes.X }, - saveUsername = new CheckBoxOption + saveUsername = new OsuCheckbox { LabelText = "Remember username", Bindable = config.GetBindable(OsuConfig.SaveUsername), }, - savePassword = new CheckBoxOption + savePassword = new OsuCheckbox { LabelText = "Stay logged in", Bindable = config.GetBindable(OsuConfig.SavePassword), diff --git a/osu.Game/Overlays/Options/General/UpdateOptions.cs b/osu.Game/Overlays/Options/Sections/General/UpdateOptions.cs similarity index 78% rename from osu.Game/Overlays/Options/General/UpdateOptions.cs rename to osu.Game/Overlays/Options/Sections/General/UpdateOptions.cs index 77cfd11273..0438e40761 100644 --- a/osu.Game/Overlays/Options/General/UpdateOptions.cs +++ b/osu.Game/Overlays/Options/Sections/General/UpdateOptions.cs @@ -1,15 +1,13 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; using osu.Framework.Platform; using osu.Game.Configuration; using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.General +namespace osu.Game.Overlays.Options.Sections.General { public class UpdateOptions : OptionsSubsection { @@ -20,12 +18,12 @@ namespace osu.Game.Overlays.Options.General { Children = new Drawable[] { - new DropdownOption + new OptionDropdown { LabelText = "Release stream", Bindable = config.GetBindable(OsuConfig.ReleaseStream), }, - new SpriteText { Text = "Your osu! is up to date" }, // TODO: map this to reality + new OptionLabel { Text = "Your osu! is up to date" }, // TODO: map this to reality new OsuButton { RelativeSizeAxes = Axes.X, diff --git a/osu.Game/Overlays/Options/General/GeneralSection.cs b/osu.Game/Overlays/Options/Sections/GeneralSection.cs similarity index 86% rename from osu.Game/Overlays/Options/General/GeneralSection.cs rename to osu.Game/Overlays/Options/Sections/GeneralSection.cs index cbcb1857a6..4952dfeef2 100644 --- a/osu.Game/Overlays/Options/General/GeneralSection.cs +++ b/osu.Game/Overlays/Options/Sections/GeneralSection.cs @@ -1,10 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics; -using osu.Game.Graphics; - -namespace osu.Game.Overlays.Options.General +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Overlays.Options.Sections.General; + +namespace osu.Game.Overlays.Options.Sections { public class GeneralSection : OptionsSection { diff --git a/osu.Game/Overlays/Options/Graphics/DetailOptions.cs b/osu.Game/Overlays/Options/Sections/Graphics/DetailOptions.cs similarity index 80% rename from osu.Game/Overlays/Options/Graphics/DetailOptions.cs rename to osu.Game/Overlays/Options/Sections/Graphics/DetailOptions.cs index 51720410a9..ff1fcf05c3 100644 --- a/osu.Game/Overlays/Options/Graphics/DetailOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Graphics/DetailOptions.cs @@ -3,10 +3,10 @@ using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Graphics +namespace osu.Game.Overlays.Options.Sections.Graphics { public class DetailOptions : OptionsSubsection { @@ -17,47 +17,47 @@ namespace osu.Game.Overlays.Options.Graphics { Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Snaking in sliders", Bindable = config.GetBindable(OsuConfig.SnakingInSliders) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Snaking out sliders", Bindable = config.GetBindable(OsuConfig.SnakingOutSliders) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Background video", Bindable = config.GetBindable(OsuConfig.Video) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Storyboards", Bindable = config.GetBindable(OsuConfig.ShowStoryboard) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Combo bursts", Bindable = config.GetBindable(OsuConfig.ComboBurst) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Hit lighting", Bindable = config.GetBindable(OsuConfig.HitLighting) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Shaders", Bindable = config.GetBindable(OsuConfig.Bloom) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Softening filter", Bindable = config.GetBindable(OsuConfig.BloomSoftening) }, - new DropdownOption + new OptionDropdown { LabelText = "Screenshot", Bindable = config.GetBindable(OsuConfig.ScreenshotFormat) diff --git a/osu.Game/Overlays/Options/Graphics/LayoutOptions.cs b/osu.Game/Overlays/Options/Sections/Graphics/LayoutOptions.cs similarity index 74% rename from osu.Game/Overlays/Options/Graphics/LayoutOptions.cs rename to osu.Game/Overlays/Options/Sections/Graphics/LayoutOptions.cs index 3235088551..bb9388b3a0 100644 --- a/osu.Game/Overlays/Options/Graphics/LayoutOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Graphics/LayoutOptions.cs @@ -1,15 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Configuration; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; -using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Graphics +namespace osu.Game.Overlays.Options.Sections.Graphics { public class LayoutOptions : OptionsSubsection { @@ -20,23 +17,23 @@ namespace osu.Game.Overlays.Options.Graphics { Children = new Drawable[] { - new SpriteText { Text = "Resolution: TODO dropdown" }, - new CheckBoxOption + new OptionLabel { Text = "Resolution: TODO dropdown" }, + new OsuCheckbox { LabelText = "Fullscreen mode", Bindable = config.GetBindable(FrameworkConfig.Fullscreen), }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Letterboxing", Bindable = config.GetBindable(FrameworkConfig.Letterboxing), }, - new SliderOption + new OptionSlider { LabelText = "Horizontal position", Bindable = (BindableInt)config.GetBindable(FrameworkConfig.LetterboxPositionX) }, - new SliderOption + new OptionSlider { LabelText = "Vertical position", Bindable = (BindableInt)config.GetBindable(FrameworkConfig.LetterboxPositionY) diff --git a/osu.Game/Overlays/Options/Graphics/MainMenuOptions.cs b/osu.Game/Overlays/Options/Sections/Graphics/MainMenuOptions.cs similarity index 79% rename from osu.Game/Overlays/Options/Graphics/MainMenuOptions.cs rename to osu.Game/Overlays/Options/Sections/Graphics/MainMenuOptions.cs index 58f1bfb3b7..c91b6f5071 100644 --- a/osu.Game/Overlays/Options/Graphics/MainMenuOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Graphics/MainMenuOptions.cs @@ -1,12 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Graphics +namespace osu.Game.Overlays.Options.Sections.Graphics { public class MainMenuOptions : OptionsSubsection { @@ -17,27 +16,27 @@ namespace osu.Game.Overlays.Options.Graphics { Children = new[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Snow", Bindable = config.GetBindable(OsuConfig.MenuSnow) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Parallax", Bindable = config.GetBindable(OsuConfig.MenuParallax) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Menu tips", Bindable = config.GetBindable(OsuConfig.ShowMenuTips) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Interface voices", Bindable = config.GetBindable(OsuConfig.MenuVoice) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "osu! music theme", Bindable = config.GetBindable(OsuConfig.MenuMusic) diff --git a/osu.Game/Overlays/Options/Graphics/RendererOptions.cs b/osu.Game/Overlays/Options/Sections/Graphics/RendererOptions.cs similarity index 80% rename from osu.Game/Overlays/Options/Graphics/RendererOptions.cs rename to osu.Game/Overlays/Options/Sections/Graphics/RendererOptions.cs index 505881315d..2ef84ca8ac 100644 --- a/osu.Game/Overlays/Options/Graphics/RendererOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Graphics/RendererOptions.cs @@ -1,15 +1,13 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Configuration; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Graphics +namespace osu.Game.Overlays.Options.Sections.Graphics { public class RendererOptions : OptionsSubsection { @@ -22,22 +20,22 @@ namespace osu.Game.Overlays.Options.Graphics Children = new Drawable[] { // TODO: this needs to be a custom dropdown at some point - new DropdownOption + new OptionDropdown { LabelText = "Frame limiter", Bindable = config.GetBindable(FrameworkConfig.FrameSync) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Show FPS counter", Bindable = osuConfig.GetBindable(OsuConfig.FpsCounter), }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Reduce dropped frames", Bindable = osuConfig.GetBindable(OsuConfig.ForceFrameFlush), }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Detect performance issues", Bindable = osuConfig.GetBindable(OsuConfig.DetectPerformanceIssues), diff --git a/osu.Game/Overlays/Options/Graphics/SongSelectGraphicsOptions.cs b/osu.Game/Overlays/Options/Sections/Graphics/SongSelectGraphicsOptions.cs similarity index 80% rename from osu.Game/Overlays/Options/Graphics/SongSelectGraphicsOptions.cs rename to osu.Game/Overlays/Options/Sections/Graphics/SongSelectGraphicsOptions.cs index 0dee3544a1..7295ff2d13 100644 --- a/osu.Game/Overlays/Options/Graphics/SongSelectGraphicsOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Graphics/SongSelectGraphicsOptions.cs @@ -1,12 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Graphics +namespace osu.Game.Overlays.Options.Sections.Graphics { public class SongSelectGraphicsOptions : OptionsSubsection { @@ -17,7 +16,7 @@ namespace osu.Game.Overlays.Options.Graphics { Children = new[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Show thumbnails", Bindable = config.GetBindable(OsuConfig.SongSelectThumbnails) diff --git a/osu.Game/Overlays/Options/Graphics/GraphicsSection.cs b/osu.Game/Overlays/Options/Sections/GraphicsSection.cs similarity index 88% rename from osu.Game/Overlays/Options/Graphics/GraphicsSection.cs rename to osu.Game/Overlays/Options/Sections/GraphicsSection.cs index 9c8c8043bf..2f5b7fad64 100644 --- a/osu.Game/Overlays/Options/Graphics/GraphicsSection.cs +++ b/osu.Game/Overlays/Options/Sections/GraphicsSection.cs @@ -1,10 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics; -using osu.Game.Graphics; - -namespace osu.Game.Overlays.Options.Graphics +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Overlays.Options.Sections.Graphics; + +namespace osu.Game.Overlays.Options.Sections { public class GraphicsSection : OptionsSection { diff --git a/osu.Game/Overlays/Options/Input/KeyboardOptions.cs b/osu.Game/Overlays/Options/Sections/Input/KeyboardOptions.cs similarity index 93% rename from osu.Game/Overlays/Options/Input/KeyboardOptions.cs rename to osu.Game/Overlays/Options/Sections/Input/KeyboardOptions.cs index 521dfb88e6..cdd7924110 100644 --- a/osu.Game/Overlays/Options/Input/KeyboardOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Input/KeyboardOptions.cs @@ -1,10 +1,10 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics; -using osu.Game.Graphics.UserInterface; - -namespace osu.Game.Overlays.Options.Input +using osu.Framework.Graphics; +using osu.Game.Graphics.UserInterface; + +namespace osu.Game.Overlays.Options.Sections.Input { public class KeyboardOptions : OptionsSubsection { diff --git a/osu.Game/Overlays/Options/Input/MouseOptions.cs b/osu.Game/Overlays/Options/Sections/Input/MouseOptions.cs similarity index 79% rename from osu.Game/Overlays/Options/Input/MouseOptions.cs rename to osu.Game/Overlays/Options/Sections/Input/MouseOptions.cs index 56b34c5396..6a4f26ce25 100644 --- a/osu.Game/Overlays/Options/Input/MouseOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Input/MouseOptions.cs @@ -1,15 +1,13 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Configuration; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Input +namespace osu.Game.Overlays.Options.Sections.Input { public class MouseOptions : OptionsSubsection { @@ -20,37 +18,37 @@ namespace osu.Game.Overlays.Options.Input { Children = new Drawable[] { - new SliderOption + new OptionSlider { LabelText = "Sensitivity", Bindable = (BindableDouble)config.GetBindable(OsuConfig.MouseSpeed), }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Raw input", Bindable = config.GetBindable(OsuConfig.RawInput) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Map absolute raw input to the osu! window", Bindable = config.GetBindable(OsuConfig.AbsoluteToOsuWindow) }, - new DropdownOption + new OptionDropdown { LabelText = "Confine mouse cursor", Bindable = config.GetBindable(OsuConfig.ConfineMouse), }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Disable mouse wheel in play mode", Bindable = config.GetBindable(OsuConfig.MouseDisableWheel) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Disable mouse buttons in play mode", Bindable = config.GetBindable(OsuConfig.MouseDisableButtons) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Cursor ripples", Bindable = config.GetBindable(OsuConfig.CursorRipple) diff --git a/osu.Game/Overlays/Options/Input/OtherInputOptions.cs b/osu.Game/Overlays/Options/Sections/Input/OtherInputOptions.cs similarity index 80% rename from osu.Game/Overlays/Options/Input/OtherInputOptions.cs rename to osu.Game/Overlays/Options/Sections/Input/OtherInputOptions.cs index 02eb17c9b4..bb888d26f1 100644 --- a/osu.Game/Overlays/Options/Input/OtherInputOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Input/OtherInputOptions.cs @@ -1,13 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Input +namespace osu.Game.Overlays.Options.Sections.Input { public class OtherInputOptions : OptionsSubsection { @@ -18,12 +17,12 @@ namespace osu.Game.Overlays.Options.Input { Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "OS TabletPC support", Bindable = config.GetBindable(OsuConfig.Tablet) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Wiimote/TaTaCon Drum Support", Bindable = config.GetBindable(OsuConfig.Wiimote) diff --git a/osu.Game/Overlays/Options/Input/InputSection.cs b/osu.Game/Overlays/Options/Sections/InputSection.cs similarity index 87% rename from osu.Game/Overlays/Options/Input/InputSection.cs rename to osu.Game/Overlays/Options/Sections/InputSection.cs index c436a7439f..f21dd81cb4 100644 --- a/osu.Game/Overlays/Options/Input/InputSection.cs +++ b/osu.Game/Overlays/Options/Sections/InputSection.cs @@ -1,10 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics; -using osu.Game.Graphics; - -namespace osu.Game.Overlays.Options.Input +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Overlays.Options.Sections.Input; + +namespace osu.Game.Overlays.Options.Sections { public class InputSection : OptionsSection { diff --git a/osu.Game/Overlays/Options/MaintenanceSection.cs b/osu.Game/Overlays/Options/Sections/MaintenanceSection.cs similarity index 93% rename from osu.Game/Overlays/Options/MaintenanceSection.cs rename to osu.Game/Overlays/Options/Sections/MaintenanceSection.cs index dcd90b8e50..4347c839a6 100644 --- a/osu.Game/Overlays/Options/MaintenanceSection.cs +++ b/osu.Game/Overlays/Options/Sections/MaintenanceSection.cs @@ -1,13 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using OpenTK; -using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Game.Graphics; -using osu.Game.Graphics.UserInterface; - -namespace osu.Game.Overlays.Options +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Graphics.UserInterface; +using OpenTK; + +namespace osu.Game.Overlays.Options.Sections { public class MaintenanceSection : OptionsSection { @@ -39,7 +38,7 @@ namespace osu.Game.Overlays.Options RelativeSizeAxes = Axes.X, Text = "Run osu! updater", }, - new SpriteText + new OptionLabel { Text = "TODO: osu version here", Anchor = Anchor.TopCentre, diff --git a/osu.Game/Overlays/Options/Online/InGameChatOptions.cs b/osu.Game/Overlays/Options/Sections/Online/InGameChatOptions.cs similarity index 67% rename from osu.Game/Overlays/Options/Online/InGameChatOptions.cs rename to osu.Game/Overlays/Options/Sections/Online/InGameChatOptions.cs index 8a04d2cec3..6e41933738 100644 --- a/osu.Game/Overlays/Options/Online/InGameChatOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Online/InGameChatOptions.cs @@ -1,53 +1,51 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Online +namespace osu.Game.Overlays.Options.Sections.Online { public class InGameChatOptions : OptionsSubsection { - private TextBoxOption chatIgnoreList; - private TextBoxOption chatHighlightWords; - protected override string Header => "In-game Chat"; + private OptionTextBox chatIgnoreList; + private OptionTextBox chatHighlightWords; + protected override string Header => "Chat"; [BackgroundDependencyLoader] private void load(OsuConfigManager config) { Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Filter offensive words", Bindable = config.GetBindable(OsuConfig.ChatFilter) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Filter foreign characters", Bindable = config.GetBindable(OsuConfig.ChatRemoveForeign) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Log private messages", Bindable = config.GetBindable(OsuConfig.LogPrivateMessages) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Block private messages from non-friends", Bindable = config.GetBindable(OsuConfig.BlockNonFriendPM) }, - new SpriteText { Text = "Chat ignore list (space-seperated list)" }, - chatIgnoreList = new TextBoxOption { + new OptionLabel { Text = "Chat ignore list (space-seperated list)" }, + chatIgnoreList = new OptionTextBox { RelativeSizeAxes = Axes.X, Bindable = config.GetBindable(OsuConfig.IgnoreList) }, - new SpriteText { Text = "Chat highlight words (space-seperated list)" }, - chatHighlightWords = new TextBoxOption { + new OptionLabel { Text = "Chat highlight words (space-seperated list)" }, + chatHighlightWords = new OptionTextBox { RelativeSizeAxes = Axes.X, Bindable = config.GetBindable(OsuConfig.HighlightWords) }, diff --git a/osu.Game/Overlays/Options/Online/OnlineIntegrationOptions.cs b/osu.Game/Overlays/Options/Sections/Online/IntegrationOptions.cs similarity index 78% rename from osu.Game/Overlays/Options/Online/OnlineIntegrationOptions.cs rename to osu.Game/Overlays/Options/Sections/Online/IntegrationOptions.cs index 4799c5d5ca..b115d3d5fb 100644 --- a/osu.Game/Overlays/Options/Online/OnlineIntegrationOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Online/IntegrationOptions.cs @@ -1,15 +1,14 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Online +namespace osu.Game.Overlays.Options.Sections.Online { - public class OnlineIntegrationOptions : OptionsSubsection + public class IntegrationOptions : OptionsSubsection { protected override string Header => "Integration"; @@ -18,22 +17,22 @@ namespace osu.Game.Overlays.Options.Online { Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Integrate with Yahoo! status display", Bindable = config.GetBindable(OsuConfig.YahooIntegration) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Integrate with MSN Live status display", Bindable = config.GetBindable(OsuConfig.MsnIntegration) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Automatically start osu!direct downloads", Bindable = config.GetBindable(OsuConfig.AutomaticDownload) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Prefer no-video downloads", Bindable = config.GetBindable(OsuConfig.AutomaticDownloadNoVideo) diff --git a/osu.Game/Overlays/Options/Online/NotificationsOptions.cs b/osu.Game/Overlays/Options/Sections/Online/NotificationsOptions.cs similarity index 82% rename from osu.Game/Overlays/Options/Online/NotificationsOptions.cs rename to osu.Game/Overlays/Options/Sections/Online/NotificationsOptions.cs index 1648d23528..659e50241f 100644 --- a/osu.Game/Overlays/Options/Online/NotificationsOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Online/NotificationsOptions.cs @@ -1,13 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Online +namespace osu.Game.Overlays.Options.Sections.Online { public class NotificationsOptions : OptionsSubsection { @@ -18,32 +17,32 @@ namespace osu.Game.Overlays.Options.Online { Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Enable chat ticker", Bindable = config.GetBindable(OsuConfig.Ticker) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Show a notification popup when someone says your name", Bindable = config.GetBindable(OsuConfig.ChatHighlightName) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Show chat message notifications", Bindable = config.GetBindable(OsuConfig.ChatMessageNotification) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Play a sound when someone says your name", Bindable = config.GetBindable(OsuConfig.ChatAudibleHighlight) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Show notification popups instantly during gameplay", Bindable = config.GetBindable(OsuConfig.PopupDuringGameplay) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Show notification popups when friends change status", Bindable = config.GetBindable(OsuConfig.NotifyFriends) diff --git a/osu.Game/Overlays/Options/Online/PrivacyOptions.cs b/osu.Game/Overlays/Options/Sections/Online/PrivacyOptions.cs similarity index 81% rename from osu.Game/Overlays/Options/Online/PrivacyOptions.cs rename to osu.Game/Overlays/Options/Sections/Online/PrivacyOptions.cs index ac654cb3d4..b68d061802 100644 --- a/osu.Game/Overlays/Options/Online/PrivacyOptions.cs +++ b/osu.Game/Overlays/Options/Sections/Online/PrivacyOptions.cs @@ -1,13 +1,12 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework; using osu.Framework.Allocation; using osu.Framework.Graphics; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; +using osu.Game.Graphics.UserInterface; -namespace osu.Game.Overlays.Options.Online +namespace osu.Game.Overlays.Options.Sections.Online { public class PrivacyOptions : OptionsSubsection { @@ -18,12 +17,12 @@ namespace osu.Game.Overlays.Options.Online { Children = new Drawable[] { - new CheckBoxOption + new OsuCheckbox { LabelText = "Share your city location with others", Bindable = config.GetBindable(OsuConfig.DisplayCityLocation) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Allow multiplayer game invites from all users", Bindable = config.GetBindable(OsuConfig.AllowPublicInvites) diff --git a/osu.Game/Overlays/Options/Online/OnlineSection.cs b/osu.Game/Overlays/Options/Sections/OnlineSection.cs similarity index 82% rename from osu.Game/Overlays/Options/Online/OnlineSection.cs rename to osu.Game/Overlays/Options/Sections/OnlineSection.cs index d07c6e89df..e204c5a81a 100644 --- a/osu.Game/Overlays/Options/Online/OnlineSection.cs +++ b/osu.Game/Overlays/Options/Sections/OnlineSection.cs @@ -1,10 +1,11 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using osu.Framework.Graphics; -using osu.Game.Graphics; - -namespace osu.Game.Overlays.Options.Online +using osu.Framework.Graphics; +using osu.Game.Graphics; +using osu.Game.Overlays.Options.Sections.Online; + +namespace osu.Game.Overlays.Options.Sections { public class OnlineSection : OptionsSection { @@ -18,7 +19,7 @@ namespace osu.Game.Overlays.Options.Online new InGameChatOptions(), new PrivacyOptions(), new NotificationsOptions(), - new OnlineIntegrationOptions(), + new IntegrationOptions(), }; } } diff --git a/osu.Game/Overlays/Options/SkinSection.cs b/osu.Game/Overlays/Options/Sections/SkinSection.cs similarity index 82% rename from osu.Game/Overlays/Options/SkinSection.cs rename to osu.Game/Overlays/Options/Sections/SkinSection.cs index f9f7587e72..720b3f35a2 100644 --- a/osu.Game/Overlays/Options/SkinSection.cs +++ b/osu.Game/Overlays/Options/Sections/SkinSection.cs @@ -1,18 +1,15 @@ //Copyright (c) 2007-2016 ppy Pty Ltd . //Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using OpenTK; -using osu.Framework; using osu.Framework.Allocation; -using osu.Framework.Configuration; +using osu.Framework.Configuration; using osu.Framework.Graphics; -using osu.Framework.Graphics.Sprites; -using osu.Framework.Graphics.UserInterface; using osu.Game.Configuration; using osu.Game.Graphics; using osu.Game.Graphics.UserInterface; +using OpenTK; -namespace osu.Game.Overlays.Options +namespace osu.Game.Overlays.Options.Sections { public class SkinSection : OptionsSection { @@ -25,8 +22,8 @@ namespace osu.Game.Overlays.Options content.Spacing = new Vector2(0, 5); Children = new Drawable[] { - new SpriteText { Text = "TODO: Skin preview textures" }, - new SpriteText { Text = "Current skin: TODO dropdown" }, + new OptionLabel { Text = "TODO: Skin preview textures" }, + new OptionLabel { Text = "Current skin: TODO dropdown" }, new OsuButton { RelativeSizeAxes = Axes.X, @@ -42,32 +39,32 @@ namespace osu.Game.Overlays.Options RelativeSizeAxes = Axes.X, Text = "Export as .osk", }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Ignore all beatmap skins", Bindable = config.GetBindable(OsuConfig.IgnoreBeatmapSkins) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Use skin's sound samples", Bindable = config.GetBindable(OsuConfig.SkinSamples) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Use Taiko skin for Taiko mode", Bindable = config.GetBindable(OsuConfig.UseTaikoSkin) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Always use skin cursor", Bindable = config.GetBindable(OsuConfig.UseSkinCursor) }, - new SliderOption + new OptionSlider { LabelText = "Cursor size", Bindable = (BindableDouble)config.GetBindable(OsuConfig.CursorSize) }, - new CheckBoxOption + new OsuCheckbox { LabelText = "Automatic cursor size", Bindable = config.GetBindable(OsuConfig.AutomaticCursorSizing) diff --git a/osu.Game/Overlays/Options/OptionsSidebar.cs b/osu.Game/Overlays/Options/Sidebar.cs similarity index 93% rename from osu.Game/Overlays/Options/OptionsSidebar.cs rename to osu.Game/Overlays/Options/Sidebar.cs index 201d7878ab..d4a5b41ac9 100644 --- a/osu.Game/Overlays/Options/OptionsSidebar.cs +++ b/osu.Game/Overlays/Options/Sidebar.cs @@ -14,13 +14,13 @@ using osu.Game.Graphics; namespace osu.Game.Overlays.Options { - public class OptionsSidebar : Container + public class Sidebar : Container { private FlowContainer content; internal const int default_width = 60, expanded_width = 200; protected override Container Content => content; - public OptionsSidebar() + public Sidebar() { RelativeSizeAxes = Axes.Y; InternalChildren = new Drawable[] diff --git a/osu.Game/Overlays/Options/SidebarButton.cs b/osu.Game/Overlays/Options/SidebarButton.cs index da2704ee60..5ec53c57b6 100644 --- a/osu.Game/Overlays/Options/SidebarButton.cs +++ b/osu.Game/Overlays/Options/SidebarButton.cs @@ -10,6 +10,7 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Input; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; namespace osu.Game.Overlays.Options { @@ -19,6 +20,7 @@ namespace osu.Game.Overlays.Options private SpriteText headerText; private Box backgroundBox; private Box selectionIndicator; + public Container text; public Action Action; private OptionsSection section; @@ -44,15 +46,21 @@ namespace osu.Game.Overlays.Options { selected = value; if (selected) + { selectionIndicator.FadeIn(50); + text.FadeColour(Color4.White, 50); + } else + { selectionIndicator.FadeOut(50); + text.FadeColour(OsuColour.Gray(0.6f), 50); + } } } public SidebarButton() { - Height = OptionsSidebar.default_width; + Height = Sidebar.default_width; RelativeSizeAxes = Axes.X; Children = new Drawable[] { @@ -63,12 +71,18 @@ namespace osu.Game.Overlays.Options Colour = OsuColour.Gray(60), Alpha = 0, }, - new Container + text = new Container { - Width = OptionsSidebar.default_width, + Width = Sidebar.default_width, RelativeSizeAxes = Axes.Y, Children = new[] { + headerText = new OsuSpriteText + { + Position = new Vector2(Sidebar.default_width + 10, 0), + Anchor = Anchor.CentreLeft, + Origin = Anchor.CentreLeft, + }, drawableIcon = new TextAwesome { Anchor = Anchor.Centre, @@ -76,12 +90,6 @@ namespace osu.Game.Overlays.Options }, } }, - headerText = new SpriteText - { - Position = new Vector2(OptionsSidebar.default_width + 10, 0), - Anchor = Anchor.CentreLeft, - Origin = Anchor.CentreLeft, - }, selectionIndicator = new Box { Alpha = 0, @@ -96,7 +104,7 @@ namespace osu.Game.Overlays.Options [BackgroundDependencyLoader] private void load(OsuColour colours) { - selectionIndicator.Colour = colours.Pink; + selectionIndicator.Colour = colours.Yellow; } protected override bool OnClick(InputState state) diff --git a/osu.Game/Overlays/OptionsOverlay.cs b/osu.Game/Overlays/OptionsOverlay.cs index 0767a70739..3513a1e462 100644 --- a/osu.Game/Overlays/OptionsOverlay.cs +++ b/osu.Game/Overlays/OptionsOverlay.cs @@ -16,14 +16,10 @@ using osu.Framework.Graphics.Transformations; using osu.Framework.Input; using osu.Game.Configuration; using osu.Game.Overlays.Options; -using osu.Game.Overlays.Options.Audio; -using osu.Game.Overlays.Options.Gameplay; -using osu.Game.Overlays.Options.General; -using osu.Game.Overlays.Options.Graphics; -using osu.Game.Overlays.Options.Input; -using osu.Game.Overlays.Options.Online; using System; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; +using osu.Game.Overlays.Options.Sections; namespace osu.Game.Overlays { @@ -33,14 +29,14 @@ namespace osu.Game.Overlays public const float TRANSITION_LENGTH = 600; - public const float SIDEBAR_WIDTH = OptionsSidebar.default_width; + public const float SIDEBAR_WIDTH = Sidebar.default_width; private const float width = 400; private const float sidebar_padding = 10; private ScrollContainer scrollContainer; - private OptionsSidebar sidebar; + private Sidebar sidebar; private SidebarButton[] sidebarButtons; private OptionsSection[] sections; private float lastKnownScroll; @@ -90,13 +86,13 @@ namespace osu.Game.Overlays Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = "settings", TextSize = 40, Margin = new MarginPadding { Left = CONTENT_MARGINS, Top = 30 }, }, - new SpriteText + new OsuSpriteText { Colour = colours.Pink, Text = "Change the way osu! behaves", @@ -114,7 +110,7 @@ namespace osu.Game.Overlays } } }, - sidebar = new OptionsSidebar + sidebar = new Sidebar { Width = SIDEBAR_WIDTH, Children = sidebarButtons = sections.Select(section => diff --git a/osu.Game/Overlays/Toolbar/ToolbarButton.cs b/osu.Game/Overlays/Toolbar/ToolbarButton.cs index cfdb71f3ce..e817ce7526 100644 --- a/osu.Game/Overlays/Toolbar/ToolbarButton.cs +++ b/osu.Game/Overlays/Toolbar/ToolbarButton.cs @@ -13,6 +13,7 @@ using osu.Framework.Graphics.Transformations; using osu.Framework.Input; using osu.Game.Graphics; using osu.Game.Graphics.Backgrounds; +using osu.Game.Graphics.Sprites; using OpenTK; using OpenTK.Graphics; @@ -90,7 +91,7 @@ namespace osu.Game.Overlays.Toolbar Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, }, - DrawableText = new SpriteText + DrawableText = new OsuSpriteText { Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, @@ -106,13 +107,13 @@ namespace osu.Game.Overlays.Toolbar Alpha = 0, Children = new[] { - tooltip1 = new SpriteText + tooltip1 = new OsuSpriteText { Shadow = true, TextSize = 22, Font = @"Exo2.0-Bold", }, - tooltip2 = new SpriteText + tooltip2 = new OsuSpriteText { Shadow = true, TextSize = 16 diff --git a/osu.Game/Screens/GameModeWhiteBox.cs b/osu.Game/Screens/GameModeWhiteBox.cs index b05ac614c6..f3400ea376 100644 --- a/osu.Game/Screens/GameModeWhiteBox.cs +++ b/osu.Game/Screens/GameModeWhiteBox.cs @@ -9,6 +9,7 @@ using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Graphics.UserInterface; +using osu.Game.Graphics.Sprites; using osu.Game.Screens.Backgrounds; using osu.Game.Graphics.UserInterface; using OpenTK; @@ -98,14 +99,14 @@ namespace osu.Game.Screens Origin = Anchor.Centre, Children = new[] { - new SpriteText + new OsuSpriteText { Text = GetType().Name, Anchor = Anchor.Centre, Origin = Anchor.Centre, TextSize = 50, }, - new SpriteText + new OsuSpriteText { Text = GetType().Namespace, Anchor = Anchor.Centre, diff --git a/osu.Game/Screens/Menu/Button.cs b/osu.Game/Screens/Menu/Button.cs index ebdb89b169..8a480faf18 100644 --- a/osu.Game/Screens/Menu/Button.cs +++ b/osu.Game/Screens/Menu/Button.cs @@ -12,6 +12,7 @@ using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; using osu.Framework.Input; using osu.Game.Graphics; +using osu.Game.Graphics.Sprites; using OpenTK; using OpenTK.Graphics; using OpenTK.Input; @@ -100,7 +101,7 @@ namespace osu.Game.Screens.Menu Position = new Vector2(0, 0), Icon = symbol }, - new SpriteText + new OsuSpriteText { Shadow = true, Direction = FlowDirection.HorizontalOnly, diff --git a/osu.Game/Screens/Play/FailDialog.cs b/osu.Game/Screens/Play/FailDialog.cs index c8718c1618..fd2ec702f1 100644 --- a/osu.Game/Screens/Play/FailDialog.cs +++ b/osu.Game/Screens/Play/FailDialog.cs @@ -6,6 +6,7 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; +using osu.Game.Graphics.Sprites; using osu.Game.Modes; using osu.Game.Screens.Backgrounds; using OpenTK; @@ -21,7 +22,7 @@ namespace osu.Game.Screens.Play public FailDialog() { - Add(new SpriteText + Add(new OsuSpriteText { Text = "You failed!", Anchor = Anchor.Centre, diff --git a/osu.Game/Screens/Play/KeyCounter.cs b/osu.Game/Screens/Play/KeyCounter.cs index d97f134f50..d7859a3ec3 100644 --- a/osu.Game/Screens/Play/KeyCounter.cs +++ b/osu.Game/Screens/Play/KeyCounter.cs @@ -6,6 +6,7 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; +using osu.Game.Graphics.Sprites; using OpenTK; using OpenTK.Graphics; @@ -85,7 +86,7 @@ namespace osu.Game.Screens.Play RelativeSizeAxes = Axes.Both, Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Text = Name, Anchor = Anchor.Centre, @@ -94,7 +95,7 @@ namespace osu.Game.Screens.Play Position = new Vector2(0, -0.25f), Colour = KeyUpTextColor }, - countSpriteText = new SpriteText + countSpriteText = new OsuSpriteText { Text = Count.ToString(@"#,0"), Anchor = Anchor.Centre, diff --git a/osu.Game/Screens/Ranking/Results.cs b/osu.Game/Screens/Ranking/Results.cs index a4219daf54..778b1c4db1 100644 --- a/osu.Game/Screens/Ranking/Results.cs +++ b/osu.Game/Screens/Ranking/Results.cs @@ -6,6 +6,7 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Transformations; +using osu.Game.Graphics.Sprites; using osu.Game.Modes; using osu.Game.Screens.Backgrounds; using OpenTK; @@ -71,17 +72,17 @@ namespace osu.Game.Screens.Ranking Direction = FlowDirection.VerticalOnly, Children = new Drawable[] { - new SpriteText + new OsuSpriteText { TextSize = 40, Text = $@"Accuracy: {s.Accuracy:#0.00%}", }, - new SpriteText + new OsuSpriteText { TextSize = 40, Text = $@"Score: {s.TotalScore}", }, - new SpriteText + new OsuSpriteText { TextSize = 40, Text = $@"MaxCombo: {s.MaxCombo}", diff --git a/osu.Game/Screens/Select/BeatmapInfoWedge.cs b/osu.Game/Screens/Select/BeatmapInfoWedge.cs index 964f4552ba..9be84003fe 100644 --- a/osu.Game/Screens/Select/BeatmapInfoWedge.cs +++ b/osu.Game/Screens/Select/BeatmapInfoWedge.cs @@ -20,6 +20,7 @@ using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.MathUtils; using osu.Game.Graphics; using osu.Game.Beatmaps.Timing; +using osu.Game.Graphics.Sprites; using osu.Game.Modes; namespace osu.Game.Screens.Select @@ -131,14 +132,14 @@ namespace osu.Game.Screens.Select AutoSizeAxes = Axes.Both, Children = new Drawable[] { - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-MediumItalic", Text = beatmapSetInfo.Metadata.Artist + " -- " + beatmapSetInfo.Metadata.Title, TextSize = 28, Shadow = true, }, - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-MediumItalic", Text = beatmapInfo.Version, @@ -152,14 +153,14 @@ namespace osu.Game.Screens.Select AutoSizeAxes = Axes.Both, Children = new [] { - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-Medium", Text = "mapped by ", TextSize = 15, Shadow = true, }, - new SpriteText + new OsuSpriteText { Font = @"Exo2.0-Bold", Text = beatmapSetInfo.Metadata.Author, @@ -204,7 +205,7 @@ namespace osu.Game.Screens.Select public InfoLabel(BeatmapStatistic statistic) { AutoSizeAxes = Axes.Both; - Children = new[] + Children = new Drawable[] { new TextAwesome { @@ -218,7 +219,7 @@ namespace osu.Game.Screens.Select Colour = new Color4(255, 221, 85, 255), Scale = new Vector2(0.8f) }, - new SpriteText + new OsuSpriteText { Margin = new MarginPadding { Left = 13 }, Font = @"Exo2.0-Bold", diff --git a/osu.Game/Screens/Select/FooterButton.cs b/osu.Game/Screens/Select/FooterButton.cs index 9d49e88716..bf592396bb 100644 --- a/osu.Game/Screens/Select/FooterButton.cs +++ b/osu.Game/Screens/Select/FooterButton.cs @@ -9,6 +9,7 @@ using osu.Framework.Graphics.Sprites; using osu.Framework.Input; using System; using osu.Framework.Graphics.Transformations; +using osu.Game.Graphics.Sprites; namespace osu.Game.Screens.Select { @@ -72,7 +73,7 @@ namespace osu.Game.Screens.Select EdgeSmoothness = new Vector2(2, 0), RelativeSizeAxes = Axes.X, }, - spriteText = new SpriteText + spriteText = new OsuSpriteText { Anchor = Anchor.Centre, Origin = Anchor.Centre, diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index a82e73c57b..f8fa2c951a 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -66,6 +66,7 @@ + @@ -96,6 +97,7 @@ + @@ -194,45 +196,45 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - +