1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 14:25:05 +08:00

Add OptionsSlider and wire up volume sliders

This commit is contained in:
Drew DeVault 2016-11-30 09:08:11 -05:00
parent 783ef6829e
commit a350e95e40
3 changed files with 55 additions and 11 deletions

View File

@ -3,6 +3,7 @@
using osu.Framework; using osu.Framework;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Audio;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
@ -14,21 +15,15 @@ namespace osu.Game.Overlays.Options.Audio
{ {
protected override string Header => "Volume"; protected override string Header => "Volume";
private CheckBoxOption ignoreHitsounds;
public VolumeOptions()
{
}
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OsuConfigManager config) private void load(OsuConfigManager config, AudioManager audio)
{ {
Children = new Drawable[] Children = new Drawable[]
{ {
new SpriteText { Text = "Master: TODO slider" }, new OptionsSlider { Label = "Master", Bindable = audio.Volume },
new SpriteText { Text = "Music: TODO slider" }, new OptionsSlider { Label = "Effect", Bindable = audio.VolumeSample },
new SpriteText { Text = "Effect: TODO slider" }, new OptionsSlider { Label = "Music", Bindable = audio.VolumeTrack },
ignoreHitsounds = new CheckBoxOption new CheckBoxOption
{ {
LabelText = "Ignore beatmap hitsounds", LabelText = "Ignore beatmap hitsounds",
Bindable = config.GetBindable<bool>(OsuConfig.IgnoreBeatmapSamples) Bindable = config.GetBindable<bool>(OsuConfig.IgnoreBeatmapSamples)

View File

@ -0,0 +1,48 @@
using System;
using OpenTK.Graphics;
using osu.Framework.Configuration;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface;
namespace osu.Game.Overlays.Options
{
public class OptionsSlider : FlowContainer
{
private SliderBar slider;
private SpriteText text;
public string Label
{
get { return text.Text; }
set { text.Text = value; }
}
public BindableDouble Bindable
{
get { return slider.Bindable; }
set { slider.Bindable = value; }
}
public OptionsSlider()
{
Direction = FlowDirection.VerticalOnly;
RelativeSizeAxes = Axes.X;
AutoSizeAxes = Axes.Y;
Children = new Drawable[]
{
text = new SpriteText(),
slider = new SliderBar
{
Margin = new MarginPadding { Top = 5 },
Height = 10,
RelativeSizeAxes = Axes.X,
Color = Color4.White,
SelectionColor = new Color4(255, 102, 170, 255),
}
};
}
}
}

View File

@ -222,6 +222,7 @@
<Compile Include="Overlays\Options\CheckBoxOption.cs" /> <Compile Include="Overlays\Options\CheckBoxOption.cs" />
<Compile Include="Overlays\Options\SidebarButton.cs" /> <Compile Include="Overlays\Options\SidebarButton.cs" />
<Compile Include="Overlays\Options\TextBoxOption.cs" /> <Compile Include="Overlays\Options\TextBoxOption.cs" />
<Compile Include="Overlays\Options\OptionsSlider.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="$(SolutionDir)\osu-framework\osu.Framework\osu.Framework.csproj"> <ProjectReference Include="$(SolutionDir)\osu-framework\osu.Framework\osu.Framework.csproj">