mirror of
https://github.com/ppy/osu.git
synced 2025-01-27 18:32:56 +08:00
Wire up enum-backed dropdowns
This commit is contained in:
parent
0378de8346
commit
4757a1c433
10
osu.Game/Configuration/ConfineMouseMode.cs
Normal file
10
osu.Game/Configuration/ConfineMouseMode.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public enum ConfineMouseMode
|
||||||
|
{
|
||||||
|
Never,
|
||||||
|
Fullscreen,
|
||||||
|
Always
|
||||||
|
}
|
||||||
|
}
|
12
osu.Game/Configuration/FrameSync.cs
Normal file
12
osu.Game/Configuration/FrameSync.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public enum FrameSync
|
||||||
|
{
|
||||||
|
VSync = 1,
|
||||||
|
Limit120 = 0,
|
||||||
|
Unlimited = 2,
|
||||||
|
CompletelyUnlimited = 4,
|
||||||
|
Custom = 5
|
||||||
|
}
|
||||||
|
}
|
10
osu.Game/Configuration/HiddenAttribute.cs
Normal file
10
osu.Game/Configuration/HiddenAttribute.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public class HiddenAttribute
|
||||||
|
{
|
||||||
|
public HiddenAttribute()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
//Copyright (c) 2007-2016 ppy Pty Ltd <contact@ppy.sh>.
|
//Copyright (c) 2007-2016 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System;
|
||||||
using osu.Framework.Configuration;
|
using osu.Framework.Configuration;
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
using osu.Game.Modes;
|
using osu.Game.Modes;
|
||||||
@ -11,6 +12,7 @@ namespace osu.Game.Configuration
|
|||||||
{
|
{
|
||||||
protected override void InitialiseDefaults()
|
protected override void InitialiseDefaults()
|
||||||
{
|
{
|
||||||
|
#pragma warning disable CS0612 // Type or member is obsolete
|
||||||
Set(OsuConfig.Width, 1366, 640);
|
Set(OsuConfig.Width, 1366, 640);
|
||||||
Set(OsuConfig.Height, 768, 480);
|
Set(OsuConfig.Height, 768, 480);
|
||||||
Set(OsuConfig.MouseSpeed, 1.0);
|
Set(OsuConfig.MouseSpeed, 1.0);
|
||||||
@ -111,17 +113,18 @@ namespace osu.Game.Configuration
|
|||||||
Set(OsuConfig.NotifySubmittedThread, true);
|
Set(OsuConfig.NotifySubmittedThread, true);
|
||||||
Set(OsuConfig.PopupDuringGameplay, true);
|
Set(OsuConfig.PopupDuringGameplay, true);
|
||||||
Set(OsuConfig.ProgressBarType, ProgressBarType.Pie);
|
Set(OsuConfig.ProgressBarType, ProgressBarType.Pie);
|
||||||
//Set(OsuConfig.RankType, RankingType.Top);
|
Set(OsuConfig.RankType, RankingType.Top);
|
||||||
Set(OsuConfig.RefreshRate, 60);
|
Set(OsuConfig.RefreshRate, 60);
|
||||||
Set(OsuConfig.OverrideRefreshRate, Get<int>(OsuConfig.RefreshRate) != 60);
|
Set(OsuConfig.OverrideRefreshRate, Get<int>(OsuConfig.RefreshRate) != 60);
|
||||||
//Set(OsuConfig.ScaleMode, ScaleMode.WidescreenConservative);
|
//Set(OsuConfig.ScaleMode, ScaleMode.WidescreenConservative);
|
||||||
Set(OsuConfig.ScoreboardVisible, true);
|
Set(OsuConfig.ScoreboardVisible, true);
|
||||||
|
Set(OsuConfig.ScoreMeter, ScoreMeterType.Error);
|
||||||
//Set(OsuConfig.ScoreMeter, OsuGame.Tournament ? ScoreMeterType.Colour : ScoreMeterType.Error);
|
//Set(OsuConfig.ScoreMeter, OsuGame.Tournament ? ScoreMeterType.Colour : ScoreMeterType.Error);
|
||||||
Set(OsuConfig.ScreenshotId, 0);
|
Set(OsuConfig.ScreenshotId, 0);
|
||||||
Set(OsuConfig.MenuSnow, false);
|
Set(OsuConfig.MenuSnow, false);
|
||||||
Set(OsuConfig.MenuTriangles, true);
|
Set(OsuConfig.MenuTriangles, true);
|
||||||
Set(OsuConfig.SongSelectThumbnails, true);
|
Set(OsuConfig.SongSelectThumbnails, true);
|
||||||
//Set(OsuConfig.ScreenshotFormat, ImageFileFormat.Jpg);
|
Set(OsuConfig.ScreenshotFormat, ScreenshotFormat.Jpg);
|
||||||
Set(OsuConfig.ShowReplayComments, true);
|
Set(OsuConfig.ShowReplayComments, true);
|
||||||
Set(OsuConfig.ShowSpectators, true);
|
Set(OsuConfig.ShowSpectators, true);
|
||||||
Set(OsuConfig.ShowStoryboard, true);
|
Set(OsuConfig.ShowStoryboard, true);
|
||||||
@ -154,7 +157,7 @@ namespace osu.Game.Configuration
|
|||||||
Set(OsuConfig.DisplayStarsMaximum, 10, 0, 10);
|
Set(OsuConfig.DisplayStarsMaximum, 10, 0, 10);
|
||||||
Set(OsuConfig.DisplayStarsMinimum, 0, 0, 10);
|
Set(OsuConfig.DisplayStarsMinimum, 0, 0, 10);
|
||||||
Set(OsuConfig.AudioDevice, string.Empty);
|
Set(OsuConfig.AudioDevice, string.Empty);
|
||||||
//Set(OsuConfig.ReleaseStream, ReleaseStream.Lazer, true);
|
Set(OsuConfig.ReleaseStream, ReleaseStream.Lazer);
|
||||||
Set(OsuConfig.UpdateFailCount, 0);
|
Set(OsuConfig.UpdateFailCount, 0);
|
||||||
Set(OsuConfig.SavePassword, false);
|
Set(OsuConfig.SavePassword, false);
|
||||||
Set(OsuConfig.SaveUsername, true);
|
Set(OsuConfig.SaveUsername, true);
|
||||||
@ -163,7 +166,7 @@ namespace osu.Game.Configuration
|
|||||||
Set(OsuConfig.Letterboxing, Get<bool>(OsuConfig.Fullscreen));
|
Set(OsuConfig.Letterboxing, Get<bool>(OsuConfig.Fullscreen));
|
||||||
Set(OsuConfig.LetterboxPositionX, 0, -100, 100);
|
Set(OsuConfig.LetterboxPositionX, 0, -100, 100);
|
||||||
Set(OsuConfig.LetterboxPositionY, 0, -100, 100);
|
Set(OsuConfig.LetterboxPositionY, 0, -100, 100);
|
||||||
//Set(OsuConfig.FrameSync, FrameSync.Limit120);
|
Set(OsuConfig.FrameSync, FrameSync.Limit120);
|
||||||
bool unicodeDefault = false;
|
bool unicodeDefault = false;
|
||||||
switch (Get<string>(OsuConfig.Language))
|
switch (Get<string>(OsuConfig.Language))
|
||||||
{
|
{
|
||||||
@ -178,6 +181,9 @@ namespace osu.Game.Configuration
|
|||||||
Set(OsuConfig.Ticker, false);
|
Set(OsuConfig.Ticker, false);
|
||||||
Set(OsuConfig.CompatibilityContext, false);
|
Set(OsuConfig.CompatibilityContext, false);
|
||||||
Set(OsuConfig.CanForceOptimusCompatibility, true);
|
Set(OsuConfig.CanForceOptimusCompatibility, true);
|
||||||
|
Set(OsuConfig.ConfineMouse, Get<bool>(OsuConfig.ConfineMouseToFullscreen) ?
|
||||||
|
ConfineMouseMode.Fullscreen : ConfineMouseMode.Never);
|
||||||
|
#pragma warning restore CS0612 // Type or member is obsolete
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo: make a UnicodeString class/struct rather than requiring this helper method.
|
//todo: make a UnicodeString class/struct rather than requiring this helper method.
|
||||||
@ -322,6 +328,8 @@ namespace osu.Game.Configuration
|
|||||||
RawInput,
|
RawInput,
|
||||||
AbsoluteToOsuWindow,
|
AbsoluteToOsuWindow,
|
||||||
ConfineMouse,
|
ConfineMouse,
|
||||||
|
[Obsolete]
|
||||||
|
ConfineMouseToFullscreen,
|
||||||
ShowMenuTips,
|
ShowMenuTips,
|
||||||
HiddenShowFirstApproach,
|
HiddenShowFirstApproach,
|
||||||
ComboColourSliderBall,
|
ComboColourSliderBall,
|
||||||
|
14
osu.Game/Configuration/RankingType.cs
Normal file
14
osu.Game/Configuration/RankingType.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public enum RankingType
|
||||||
|
{
|
||||||
|
Local,
|
||||||
|
[DisplayName("Global")]
|
||||||
|
Top,
|
||||||
|
[DisplayName("Selected Mods")]
|
||||||
|
SelectedMod,
|
||||||
|
Friends,
|
||||||
|
Country
|
||||||
|
}
|
||||||
|
}
|
11
osu.Game/Configuration/ReleaseStream.cs
Normal file
11
osu.Game/Configuration/ReleaseStream.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public enum ReleaseStream
|
||||||
|
{
|
||||||
|
Lazer,
|
||||||
|
//Stable40,
|
||||||
|
//Beta40,
|
||||||
|
//Stable
|
||||||
|
}
|
||||||
|
}
|
10
osu.Game/Configuration/ScoreMeterType.cs
Normal file
10
osu.Game/Configuration/ScoreMeterType.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public enum ScoreMeterType
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Colour,
|
||||||
|
Error
|
||||||
|
}
|
||||||
|
}
|
12
osu.Game/Configuration/ScreenshotFormat.cs
Normal file
12
osu.Game/Configuration/ScreenshotFormat.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
namespace osu.Game.Configuration
|
||||||
|
{
|
||||||
|
public enum ScreenshotFormat
|
||||||
|
{
|
||||||
|
Bmp = 0, // TODO: Figure out the best way to hide this from the dropdown
|
||||||
|
[DisplayName("JPG (web-friendly)")]
|
||||||
|
Jpg = 1,
|
||||||
|
[DisplayName("PNG (lossless)")]
|
||||||
|
Png = 2
|
||||||
|
}
|
||||||
|
}
|
@ -30,7 +30,11 @@ namespace osu.Game.Overlays.Options.Gameplay
|
|||||||
Label = "Progress display",
|
Label = "Progress display",
|
||||||
Bindable = config.GetBindable<ProgressBarType>(OsuConfig.ProgressBarType)
|
Bindable = config.GetBindable<ProgressBarType>(OsuConfig.ProgressBarType)
|
||||||
},
|
},
|
||||||
new SpriteText { Text = "Score meter type: TODO dropdown" },
|
new OptionsDropdown<ScoreMeterType>
|
||||||
|
{
|
||||||
|
Label = "Score meter type",
|
||||||
|
Bindable = config.GetBindable<ScoreMeterType>(OsuConfig.ScoreMeter)
|
||||||
|
},
|
||||||
new SliderOption<double>
|
new SliderOption<double>
|
||||||
{
|
{
|
||||||
LabelText = "Score meter size",
|
LabelText = "Score meter size",
|
||||||
@ -59,4 +63,4 @@ namespace osu.Game.Overlays.Options.Gameplay
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ using osu.Framework.Allocation;
|
|||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Sprites;
|
using osu.Framework.Graphics.Sprites;
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Options.General
|
namespace osu.Game.Overlays.Options.General
|
||||||
@ -15,11 +16,15 @@ namespace osu.Game.Overlays.Options.General
|
|||||||
protected override string Header => "Updates";
|
protected override string Header => "Updates";
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(BasicStorage storage)
|
private void load(BasicStorage storage, OsuConfigManager config)
|
||||||
{
|
{
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new SpriteText { Text = "TODO: Dropdown" },
|
new OptionsDropdown<ReleaseStream>
|
||||||
|
{
|
||||||
|
Label = "Release stream",
|
||||||
|
Bindable = config.GetBindable<ReleaseStream>(OsuConfig.ReleaseStream),
|
||||||
|
},
|
||||||
new SpriteText { Text = "Your osu! is up to date" }, // TODO: map this to reality
|
new SpriteText { Text = "Your osu! is up to date" }, // TODO: map this to reality
|
||||||
new OsuButton
|
new OsuButton
|
||||||
{
|
{
|
||||||
|
@ -57,7 +57,11 @@ namespace osu.Game.Overlays.Options.Graphics
|
|||||||
LabelText = "Softening filter",
|
LabelText = "Softening filter",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.BloomSoftening)
|
Bindable = config.GetBindable<bool>(OsuConfig.BloomSoftening)
|
||||||
},
|
},
|
||||||
new SpriteText { Text = "Screenshot format TODO: dropdown" }
|
new OptionsDropdown<ScreenshotFormat>
|
||||||
|
{
|
||||||
|
Label = "Screenshot",
|
||||||
|
Bindable = config.GetBindable<ScreenshotFormat>(OsuConfig.ScreenshotFormat)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,12 @@ namespace osu.Game.Overlays.Options.Graphics
|
|||||||
// NOTE: Compatability mode omitted
|
// NOTE: Compatability mode omitted
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new SpriteText { Text = "Frame limiter: TODO dropdown" },
|
// TODO: this needs to be a custom dropdown at some point
|
||||||
|
new OptionsDropdown<FrameSync>
|
||||||
|
{
|
||||||
|
Label = "Frame limiter",
|
||||||
|
Bindable = config.GetBindable<FrameSync>(OsuConfig.FrameSync)
|
||||||
|
},
|
||||||
new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Show FPS counter",
|
LabelText = "Show FPS counter",
|
||||||
|
@ -15,12 +15,6 @@ namespace osu.Game.Overlays.Options.Input
|
|||||||
{
|
{
|
||||||
protected override string Header => "Mouse";
|
protected override string Header => "Mouse";
|
||||||
|
|
||||||
private CheckBoxOption rawInput, mapRawInput, disableWheel, disableButtons, enableRipples;
|
|
||||||
|
|
||||||
public MouseOptions()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(OsuConfigManager config)
|
private void load(OsuConfigManager config)
|
||||||
{
|
{
|
||||||
@ -32,28 +26,32 @@ namespace osu.Game.Overlays.Options.Input
|
|||||||
LabelText = "Sensitivity",
|
LabelText = "Sensitivity",
|
||||||
Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.MouseSpeed),
|
Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.MouseSpeed),
|
||||||
},
|
},
|
||||||
rawInput = new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Raw input",
|
LabelText = "Raw input",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.RawInput)
|
Bindable = config.GetBindable<bool>(OsuConfig.RawInput)
|
||||||
},
|
},
|
||||||
mapRawInput = new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Map absolute raw input to the osu! window",
|
LabelText = "Map absolute raw input to the osu! window",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.AbsoluteToOsuWindow)
|
Bindable = config.GetBindable<bool>(OsuConfig.AbsoluteToOsuWindow)
|
||||||
},
|
},
|
||||||
new SpriteText { Text = "Confine mouse cursor: TODO dropdown" },
|
new OptionsDropdown<ConfineMouseMode>
|
||||||
disableWheel = new CheckBoxOption
|
{
|
||||||
|
Label = "Confine mouse cursor",
|
||||||
|
Bindable = config.GetBindable<ConfineMouseMode>(OsuConfig.ConfineMouse),
|
||||||
|
},
|
||||||
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Disable mouse wheel in play mode",
|
LabelText = "Disable mouse wheel in play mode",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.MouseDisableWheel)
|
Bindable = config.GetBindable<bool>(OsuConfig.MouseDisableWheel)
|
||||||
},
|
},
|
||||||
disableButtons = new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Disable mouse buttons in play mode",
|
LabelText = "Disable mouse buttons in play mode",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.MouseDisableButtons)
|
Bindable = config.GetBindable<bool>(OsuConfig.MouseDisableButtons)
|
||||||
},
|
},
|
||||||
enableRipples = new CheckBoxOption
|
new CheckBoxOption
|
||||||
{
|
{
|
||||||
LabelText = "Cursor ripples",
|
LabelText = "Cursor ripples",
|
||||||
Bindable = config.GetBindable<bool>(OsuConfig.CursorRipple)
|
Bindable = config.GetBindable<bool>(OsuConfig.CursorRipple)
|
||||||
|
@ -226,6 +226,12 @@
|
|||||||
<Compile Include="Configuration\ProgressBarType.cs" />
|
<Compile Include="Configuration\ProgressBarType.cs" />
|
||||||
<Compile Include="Overlays\Options\OptionsDropdown.cs" />
|
<Compile Include="Overlays\Options\OptionsDropdown.cs" />
|
||||||
<Compile Include="Configuration\DisplayNameAttribute.cs" />
|
<Compile Include="Configuration\DisplayNameAttribute.cs" />
|
||||||
|
<Compile Include="Configuration\RankingType.cs" />
|
||||||
|
<Compile Include="Configuration\ScoreMeterType.cs" />
|
||||||
|
<Compile Include="Configuration\ReleaseStream.cs" />
|
||||||
|
<Compile Include="Configuration\ScreenshotFormat.cs" />
|
||||||
|
<Compile Include="Configuration\FrameSync.cs" />
|
||||||
|
<Compile Include="Configuration\ConfineMouseMode.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">
|
||||||
|
Loading…
Reference in New Issue
Block a user