// Copyright (c) 2007-2017 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.Input; using osu.Game.Configuration; using osu.Game.Graphics.UserInterface; namespace osu.Game.Overlays.Settings.Sections.Input { public class MouseSettings : SettingsSubsection { protected override string Header => "Mouse"; private readonly BindableBool rawInputToggle = new BindableBool(); private Bindable activeInputHandlers; [BackgroundDependencyLoader] private void load(OsuConfigManager osuConfig, FrameworkConfigManager config) { activeInputHandlers = config.GetBindable(FrameworkSetting.ActiveInputHandlers); rawInputToggle.Value = activeInputHandlers.Value.Contains("Raw"); rawInputToggle.ValueChanged += enabled => { const string raw_mouse_handler = @"OpenTKRawMouseHandler"; const string standard_mouse_handler = @"OpenTKMouseHandler"; activeInputHandlers.Value = enabled ? activeInputHandlers.Value.Replace(standard_mouse_handler, raw_mouse_handler) : activeInputHandlers.Value.Replace(raw_mouse_handler, standard_mouse_handler); }; Children = new Drawable[] { new SettingsEnumDropdown { LabelText = "Confine mouse cursor", Bindable = config.GetBindable(FrameworkSetting.ConfineMouseMode), }, new SettingsCheckbox { LabelText = "Disable mouse wheel during gameplay", Bindable = osuConfig.GetBindable(OsuSetting.MouseDisableWheel) }, new SettingsCheckbox { LabelText = "Disable mouse buttons during gameplay", Bindable = osuConfig.GetBindable(OsuSetting.MouseDisableButtons) }, new SettingsCheckbox { LabelText = "Raw Input", Bindable = rawInputToggle }, new SettingsSlider { LabelText = "Cursor Sensitivity", Bindable = config.GetBindable(FrameworkSetting.CursorSensitivity) } }; } private class SensitivitySlider : OsuSliderBar { public override string TooltipText => Current.Value.ToString(@"0.##x"); } } }