1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-24 21:27:25 +08:00

Merge branch 'master' of https://github.com/ppy/osu into deflate-branch

This commit is contained in:
MaxOhn 2018-10-10 01:38:41 +02:00
commit 85190079e3
136 changed files with 807 additions and 869 deletions

View File

@ -27,9 +27,6 @@ namespace osu.Desktop.Overlays
private NotificationOverlay notificationOverlay; private NotificationOverlay notificationOverlay;
private GameHost host; private GameHost host;
public override bool HandleNonPositionalInput => false;
public override bool HandlePositionalInput => false;
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(NotificationOverlay notification, OsuColour colours, TextureStore textures, OsuGameBase game, OsuConfigManager config, GameHost host) private void load(NotificationOverlay notification, OsuColour colours, TextureStore textures, OsuGameBase game, OsuConfigManager config, GameHost host)
{ {

View File

@ -30,10 +30,11 @@ namespace osu.Game.Rulesets.Mania.UI
if (Result.IsHit) if (Result.IsHit)
{ {
this.ScaleTo(0.8f); JudgementBody.ScaleTo(0.8f);
this.ScaleTo(1, 250, Easing.OutElastic); JudgementBody.ScaleTo(1, 250, Easing.OutElastic);
this.Delay(50).FadeOut(200).ScaleTo(0.75f, 250); JudgementBody.Delay(50).ScaleTo(0.75f, 250);
this.Delay(50).FadeOut(200);
} }
Expire(); Expire();

View File

@ -12,6 +12,9 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
{ {
public class CirclePiece : Container, IKeyBindingHandler<OsuAction> public class CirclePiece : Container, IKeyBindingHandler<OsuAction>
{ {
// IsHovered is used
public override bool HandlePositionalInput => true;
public Func<bool> Hit; public Func<bool> Hit;
public CirclePiece() public CirclePiece()

View File

@ -5,11 +5,11 @@ using System.Linq;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Rulesets.Objects.Types; using osu.Game.Rulesets.Objects.Types;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Game.Skinning; using osu.Game.Skinning;
using OpenTK;
namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
{ {
@ -102,24 +102,24 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
}; };
} }
private InputState lastState; private Vector2? lastScreenSpaceMousePosition;
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
lastState = state; lastScreenSpaceMousePosition = e.ScreenSpaceMousePosition;
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
lastState = state; lastScreenSpaceMousePosition = e.ScreenSpaceMousePosition;
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
lastState = state; lastScreenSpaceMousePosition = e.ScreenSpaceMousePosition;
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
public override void ClearTransformsAfter(double time, bool propagateChildren = false, string targetMember = null) public override void ClearTransformsAfter(double time, bool propagateChildren = false, string targetMember = null)
@ -155,8 +155,8 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
{ {
// Make sure to use the base version of ReceivePositionalInputAt so that we correctly check the position. // Make sure to use the base version of ReceivePositionalInputAt so that we correctly check the position.
Tracking = canCurrentlyTrack Tracking = canCurrentlyTrack
&& lastState != null && lastScreenSpaceMousePosition.HasValue
&& ReceivePositionalInputAt(lastState.Mouse.NativeState.Position) && ReceivePositionalInputAt(lastScreenSpaceMousePosition.Value)
&& (drawableSlider?.OsuActionInputManager?.PressedActions.Any(x => x == OsuAction.LeftButton || x == OsuAction.RightButton) ?? false); && (drawableSlider?.OsuActionInputManager?.PressedActions.Any(x => x == OsuAction.LeftButton || x == OsuAction.RightButton) ?? false);
} }
} }

View File

@ -11,9 +11,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
{ {
public class SpinnerBackground : CircularContainer, IHasAccentColour public class SpinnerBackground : CircularContainer, IHasAccentColour
{ {
public override bool HandleNonPositionalInput => false;
public override bool HandlePositionalInput => false;
protected Box Disc; protected Box Disc;
public Color4 AccentColour public Color4 AccentColour

View File

@ -4,7 +4,7 @@
using System; using System;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -68,10 +68,10 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables.Pieces
} }
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
mousePosition = Parent.ToLocalSpace(state.Mouse.NativeState.Position); mousePosition = Parent.ToLocalSpace(e.ScreenSpaceMousePosition);
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
private Vector2 mousePosition; private Vector2 mousePosition;

View File

@ -4,8 +4,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Rulesets.UI; using osu.Game.Rulesets.UI;
namespace osu.Game.Rulesets.Osu namespace osu.Game.Rulesets.Osu
@ -36,13 +35,11 @@ namespace osu.Game.Rulesets.Osu
{ {
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) => AllowUserPresses && base.OnKeyDown(state, args); protected override bool Handle(UIEvent e)
protected override bool OnKeyUp(InputState state, KeyUpEventArgs args) => AllowUserPresses && base.OnKeyUp(state, args); {
protected override bool OnJoystickPress(InputState state, JoystickEventArgs args) => AllowUserPresses && base.OnJoystickPress(state, args); if (!AllowUserPresses) return false;
protected override bool OnJoystickRelease(InputState state, JoystickEventArgs args) => AllowUserPresses && base.OnJoystickRelease(state, args); return base.Handle(e);
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => AllowUserPresses && base.OnMouseDown(state, args); }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) => AllowUserPresses && base.OnMouseUp(state, args);
protected override bool OnScroll(InputState state) => AllowUserPresses && base.OnScroll(state);
} }
} }

View File

@ -12,7 +12,7 @@ using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Shaders; using osu.Framework.Graphics.Shaders;
using osu.Framework.Graphics.Textures; using osu.Framework.Graphics.Textures;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Timing; using osu.Framework.Timing;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -117,15 +117,15 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
timeOffset = Time.Current; timeOffset = Time.Current;
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
Vector2 pos = state.Mouse.NativeState.Position; Vector2 pos = e.ScreenSpaceMousePosition;
if (lastPosition == null) if (lastPosition == null)
{ {
lastPosition = pos; lastPosition = pos;
resampler.AddPosition(lastPosition.Value); resampler.AddPosition(lastPosition.Value);
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
foreach (Vector2 pos2 in resampler.AddPosition(pos)) foreach (Vector2 pos2 in resampler.AddPosition(pos))
@ -147,7 +147,7 @@ namespace osu.Game.Rulesets.Osu.UI.Cursor
} }
} }
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
private void addPosition(Vector2 pos) private void addPosition(Vector2 pos)

View File

@ -31,10 +31,10 @@ namespace osu.Game.Rulesets.Taiko.UI
switch (Result.Type) switch (Result.Type)
{ {
case HitResult.Good: case HitResult.Good:
Colour = colours.GreenLight; JudgementBody.Colour = colours.GreenLight;
break; break;
case HitResult.Great: case HitResult.Great:
Colour = colours.BlueLight; JudgementBody.Colour = colours.BlueLight;
break; break;
} }
} }

View File

@ -165,7 +165,7 @@ namespace osu.Game.Tests.Beatmaps.Formats
} }
[Test] [Test]
public void TestDecodeBeatmapColors() public void TestDecodeBeatmapColours()
{ {
var decoder = new LegacySkinDecoder(); var decoder = new LegacySkinDecoder();
using (var resStream = Resource.OpenResource("Soleily - Renatus (Gamu) [Insane].osu")) using (var resStream = Resource.OpenResource("Soleily - Renatus (Gamu) [Insane].osu"))
@ -181,6 +181,7 @@ namespace osu.Game.Tests.Beatmaps.Formats
new Color4(128, 255, 128, 255), new Color4(128, 255, 128, 255),
new Color4(255, 187, 255, 255), new Color4(255, 187, 255, 255),
new Color4(255, 177, 140, 255), new Color4(255, 177, 140, 255),
new Color4(100, 100, 100, 100),
}; };
Assert.AreEqual(expectedColors.Length, comboColors.Count); Assert.AreEqual(expectedColors.Length, comboColors.Count);
for (int i = 0; i < expectedColors.Length; i++) for (int i = 0; i < expectedColors.Length; i++)

View File

@ -101,6 +101,7 @@ Combo3 : 128,255,255
Combo4 : 128,255,128 Combo4 : 128,255,128
Combo5 : 255,187,255 Combo5 : 255,187,255
Combo6 : 255,177,140 Combo6 : 255,177,140
Combo7 : 100,100,100,100
[HitObjects] [HitObjects]
192,168,956,6,0,P|184:128|200:80,1,90,4|0,1:2|0:0,0:0:0:0: 192,168,956,6,0,P|184:128|200:80,1,90,4|0,1:2|0:0,0:0:0:0:

View File

@ -7,7 +7,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Cursor; using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.MathUtils; using osu.Framework.MathUtils;
using osu.Game.Graphics.Cursor; using osu.Game.Graphics.Cursor;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -184,7 +184,7 @@ namespace osu.Game.Tests.Visual
/// </summary> /// </summary>
/// <param name="cursorContainer">The cursor to check.</param> /// <param name="cursorContainer">The cursor to check.</param>
private bool checkAtMouse(CursorContainer cursorContainer) private bool checkAtMouse(CursorContainer cursorContainer)
=> Precision.AlmostEquals(InputManager.CurrentState.Mouse.NativeState.Position, cursorContainer.ToScreenSpace(cursorContainer.ActiveCursor.DrawPosition)); => Precision.AlmostEquals(InputManager.CurrentState.Mouse.Position, cursorContainer.ToScreenSpace(cursorContainer.ActiveCursor.DrawPosition));
private class CustomCursorBox : Container, IProvideCursor private class CustomCursorBox : Container, IProvideCursor
{ {
@ -224,16 +224,16 @@ namespace osu.Game.Tests.Visual
}; };
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
background.FadeTo(0.4f, 250, Easing.OutQuint); background.FadeTo(0.4f, 250, Easing.OutQuint);
return false; return false;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
background.FadeTo(0.1f, 250); background.FadeTo(0.1f, 250);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }

View File

@ -85,13 +85,19 @@ namespace osu.Game.Beatmaps.Formats
string[] split = pair.Value.Split(','); string[] split = pair.Value.Split(',');
if (split.Length != 3) if (split.Length != 3 && split.Length != 4)
throw new InvalidOperationException($@"Color specified in incorrect format (should be R,G,B): {pair.Value}"); throw new InvalidOperationException($@"Color specified in incorrect format (should be R,G,B or R,G,B,A): {pair.Value}");
if (!byte.TryParse(split[0], out var r) || !byte.TryParse(split[1], out var g) || !byte.TryParse(split[2], out var b)) Color4 colour;
try
{
colour = new Color4(byte.Parse(split[0]), byte.Parse(split[1]), byte.Parse(split[2]), split.Length == 4 ? byte.Parse(split[3]) : (byte)255);
}
catch (Exception e)
{
throw new InvalidOperationException(@"Color must be specified with 8-bit integer components"); throw new InvalidOperationException(@"Color must be specified with 8-bit integer components");
}
Color4 colour = new Color4(r, g, b, 255);
if (isCombo) if (isCombo)
{ {

View File

@ -30,10 +30,6 @@ namespace osu.Game.Graphics.Backgrounds
/// </summary> /// </summary>
private const float edge_smoothness = 1; private const float edge_smoothness = 1;
public override bool HandleNonPositionalInput => false;
public override bool HandlePositionalInput => false;
public Color4 ColourLight = Color4.White; public Color4 ColourLight = Color4.White;
public Color4 ColourDark = Color4.Black; public Color4 ColourDark = Color4.Black;

View File

@ -20,8 +20,6 @@ namespace osu.Game.Graphics.Containers
{ {
} }
public override bool HandlePositionalInput => true;
private OsuGame game; private OsuGame game;
private Action showNotImplementedError; private Action showNotImplementedError;

View File

@ -8,7 +8,7 @@ using osu.Framework.Graphics.Containers;
using OpenTK; using OpenTK;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Audio; using osu.Game.Audio;
using osu.Game.Input.Bindings; using osu.Game.Input.Bindings;
using osu.Game.Overlays; using osu.Game.Overlays;
@ -59,15 +59,15 @@ namespace osu.Game.Graphics.Containers
// receive input outside our bounds so we can trigger a close event on ourselves. // receive input outside our bounds so we can trigger a close event on ourselves.
public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => BlockScreenWideMouse || base.ReceivePositionalInputAt(screenSpacePos); public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => BlockScreenWideMouse || base.ReceivePositionalInputAt(screenSpacePos);
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if (!base.ReceivePositionalInputAt(state.Mouse.NativeState.Position)) if (!base.ReceivePositionalInputAt(e.ScreenSpaceMousePosition))
{ {
State = Visibility.Hidden; State = Visibility.Hidden;
return true; return true;
} }
return base.OnClick(state); return base.OnClick(e);
} }
public virtual bool OnPressed(GlobalAction action) public virtual bool OnPressed(GlobalAction action)

View File

@ -6,7 +6,7 @@ using OpenTK.Graphics;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Graphics.Containers namespace osu.Game.Graphics.Containers
{ {
@ -18,16 +18,16 @@ namespace osu.Game.Graphics.Containers
protected virtual IEnumerable<Drawable> EffectTargets => new[] { Content }; protected virtual IEnumerable<Drawable> EffectTargets => new[] { Content };
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
EffectTargets.ForEach(d => d.FadeColour(HoverColour, 500, Easing.OutQuint)); EffectTargets.ForEach(d => d.FadeColour(HoverColour, 500, Easing.OutQuint));
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
EffectTargets.ForEach(d => d.FadeColour(IdleColour, 500, Easing.OutQuint)); EffectTargets.ForEach(d => d.FadeColour(IdleColour, 500, Easing.OutQuint));
base.OnHoverLost(state); base.OnHoverLost(e);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]

View File

@ -2,8 +2,7 @@
// 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 osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using OpenTK.Input; using OpenTK.Input;
namespace osu.Game.Graphics.Containers namespace osu.Game.Graphics.Containers
@ -21,7 +20,7 @@ namespace osu.Game.Graphics.Containers
/// </summary> /// </summary>
public double DistanceDecayOnRightMouseScrollbar = 0.02; public double DistanceDecayOnRightMouseScrollbar = 0.02;
private bool shouldPerformRightMouseScroll(InputState state) => RightMouseScrollbar && state.Mouse.IsPressed(MouseButton.Right); private bool shouldPerformRightMouseScroll(MouseButtonEvent e) => RightMouseScrollbar && e.Button == MouseButton.Right;
private void scrollToRelative(float value) => ScrollTo(Clamp((value - Scrollbar.DrawSize[ScrollDim] / 2) / Scrollbar.Size[ScrollDim]), true, DistanceDecayOnRightMouseScrollbar); private void scrollToRelative(float value) => ScrollTo(Clamp((value - Scrollbar.DrawSize[ScrollDim] / 2) / Scrollbar.Size[ScrollDim]), true, DistanceDecayOnRightMouseScrollbar);
@ -29,40 +28,40 @@ namespace osu.Game.Graphics.Containers
protected override bool IsDragging => base.IsDragging || mouseScrollBarDragging; protected override bool IsDragging => base.IsDragging || mouseScrollBarDragging;
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
if (shouldPerformRightMouseScroll(state)) if (shouldPerformRightMouseScroll(e))
{ {
scrollToRelative(state.Mouse.Position[ScrollDim]); scrollToRelative(e.MousePosition[ScrollDim]);
return true; return true;
} }
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
if (mouseScrollBarDragging) if (mouseScrollBarDragging)
{ {
scrollToRelative(state.Mouse.Position[ScrollDim]); scrollToRelative(e.MousePosition[ScrollDim]);
return true; return true;
} }
return base.OnDrag(state); return base.OnDrag(e);
} }
protected override bool OnDragStart(InputState state) protected override bool OnDragStart(DragStartEvent e)
{ {
if (shouldPerformRightMouseScroll(state)) if (shouldPerformRightMouseScroll(e))
{ {
mouseScrollBarDragging = true; mouseScrollBarDragging = true;
return true; return true;
} }
return base.OnDragStart(state); return base.OnDragStart(e);
} }
protected override bool OnDragEnd(InputState state) protected override bool OnDragEnd(DragEndEvent e)
{ {
if (mouseScrollBarDragging) if (mouseScrollBarDragging)
{ {
@ -70,7 +69,7 @@ namespace osu.Game.Graphics.Containers
return true; return true;
} }
return base.OnDragEnd(state); return base.OnDragEnd(e);
} }
} }
} }

View File

@ -67,7 +67,7 @@ namespace osu.Game.Graphics.Containers
if (parallaxEnabled) if (parallaxEnabled)
{ {
Vector2 offset = (input.CurrentState.Mouse == null ? Vector2.Zero : ToLocalSpace(input.CurrentState.Mouse.NativeState.Position) - DrawSize / 2) * ParallaxAmount; Vector2 offset = (input.CurrentState.Mouse == null ? Vector2.Zero : ToLocalSpace(input.CurrentState.Mouse.Position) - DrawSize / 2) * ParallaxAmount;
double elapsed = MathHelper.Clamp(Clock.ElapsedFrameTime, 0, 1000); double elapsed = MathHelper.Clamp(Clock.ElapsedFrameTime, 0, 1000);

View File

@ -12,8 +12,7 @@ using osu.Game.Configuration;
using System; using System;
using JetBrains.Annotations; using JetBrains.Annotations;
using osu.Framework.Graphics.Textures; using osu.Framework.Graphics.Textures;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using OpenTK.Input; using OpenTK.Input;
namespace osu.Game.Graphics.Cursor namespace osu.Game.Graphics.Cursor
@ -40,11 +39,11 @@ namespace osu.Game.Graphics.Cursor
screenshotCursorVisibility.BindTo(screenshotManager.CursorVisibility); screenshotCursorVisibility.BindTo(screenshotManager.CursorVisibility);
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
if (dragRotationState != DragRotationState.NotDragging) if (dragRotationState != DragRotationState.NotDragging)
{ {
var position = state.Mouse.Position; var position = e.MousePosition;
var distance = Vector2Extensions.Distance(position, positionMouseDown); var distance = Vector2Extensions.Distance(position, positionMouseDown);
// don't start rotating until we're moved a minimum distance away from the mouse down location, // don't start rotating until we're moved a minimum distance away from the mouse down location,
// else it can have an annoying effect. // else it can have an annoying effect.
@ -53,7 +52,7 @@ namespace osu.Game.Graphics.Cursor
// don't rotate when distance is zero to avoid NaN // don't rotate when distance is zero to avoid NaN
if (dragRotationState == DragRotationState.Rotating && distance > 0) if (dragRotationState == DragRotationState.Rotating && distance > 0)
{ {
Vector2 offset = state.Mouse.Position - positionMouseDown; Vector2 offset = e.MousePosition - positionMouseDown;
float degrees = (float)MathHelper.RadiansToDegrees(Math.Atan2(-offset.X, offset.Y)) + 24.3f; float degrees = (float)MathHelper.RadiansToDegrees(Math.Atan2(-offset.X, offset.Y)) + 24.3f;
// Always rotate in the direction of least distance // Always rotate in the direction of least distance
@ -66,13 +65,13 @@ namespace osu.Game.Graphics.Cursor
} }
} }
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
// only trigger animation for main mouse buttons // only trigger animation for main mouse buttons
if (args.Button <= MouseButton.Right) if (e.Button <= MouseButton.Right)
{ {
activeCursor.Scale = new Vector2(1); activeCursor.Scale = new Vector2(1);
activeCursor.ScaleTo(0.90f, 800, Easing.OutQuint); activeCursor.ScaleTo(0.90f, 800, Easing.OutQuint);
@ -81,29 +80,29 @@ namespace osu.Game.Graphics.Cursor
activeCursor.AdditiveLayer.FadeInFromZero(800, Easing.OutQuint); activeCursor.AdditiveLayer.FadeInFromZero(800, Easing.OutQuint);
} }
if (args.Button == MouseButton.Left && cursorRotate) if (e.Button == MouseButton.Left && cursorRotate)
{ {
dragRotationState = DragRotationState.DragStarted; dragRotationState = DragRotationState.DragStarted;
positionMouseDown = state.Mouse.Position; positionMouseDown = e.MousePosition;
} }
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
if (!state.Mouse.HasMainButtonPressed) if (!e.IsPressed(MouseButton.Left) && !e.IsPressed(MouseButton.Right))
{ {
activeCursor.AdditiveLayer.FadeOutFromOne(500, Easing.OutQuint); activeCursor.AdditiveLayer.FadeOutFromOne(500, Easing.OutQuint);
activeCursor.ScaleTo(1, 500, Easing.OutElastic); activeCursor.ScaleTo(1, 500, Easing.OutElastic);
} }
if (args.Button == MouseButton.Left) if (e.Button == MouseButton.Left)
{ {
if (dragRotationState == DragRotationState.Rotating) if (dragRotationState == DragRotationState.Rotating)
activeCursor.RotateTo(0, 600 * (1 + Math.Abs(activeCursor.Rotation / 720)), Easing.OutElasticHalf); activeCursor.RotateTo(0, 600 * (1 + Math.Abs(activeCursor.Rotation / 720)), Easing.OutElasticHalf);
dragRotationState = DragRotationState.NotDragging; dragRotationState = DragRotationState.NotDragging;
} }
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
protected override void PopIn() protected override void PopIn()

View File

@ -54,8 +54,6 @@ namespace osu.Game.Graphics
Scheduler.AddDelayed(updateTimeWithReschedule, timeUntilNextUpdate); Scheduler.AddDelayed(updateTimeWithReschedule, timeUntilNextUpdate);
} }
public override bool HandlePositionalInput => true;
protected virtual string Format() => Date.Humanize(); protected virtual string Format() => Date.Humanize();
private void updateTime() => Text = Format(); private void updateTime() => Text = Format();

View File

@ -13,7 +13,7 @@ using osu.Game.Graphics.Sprites;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -213,7 +213,7 @@ namespace osu.Game.Graphics.UserInterface
public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => backgroundContainer.ReceivePositionalInputAt(screenSpacePos); public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => backgroundContainer.ReceivePositionalInputAt(screenSpacePos);
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
colourContainer.ResizeTo(new Vector2(1.5f, 1f), click_duration, Easing.In); colourContainer.ResizeTo(new Vector2(1.5f, 1f), click_duration, Easing.In);
flash(); flash();
@ -225,20 +225,20 @@ namespace osu.Game.Graphics.UserInterface
glowContainer.FadeOut(); glowContainer.FadeOut();
}); });
return base.OnClick(state); return base.OnClick(e);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
base.OnHover(state); base.OnHover(e);
Selected.Value = true; Selected.Value = true;
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
base.OnHoverLost(state); base.OnHoverLost(e);
Selected.Value = false; Selected.Value = false;
} }

View File

@ -5,7 +5,7 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Cursor; using osu.Framework.Graphics.Cursor;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Platform; using osu.Framework.Platform;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -37,19 +37,19 @@ namespace osu.Game.Graphics.UserInterface
this.host = host; this.host = host;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
InternalChild.FadeColour(hoverColour, 500, Easing.OutQuint); InternalChild.FadeColour(hoverColour, 500, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
InternalChild.FadeColour(Color4.White, 500, Easing.OutQuint); InternalChild.FadeColour(Color4.White, 500, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if(Link != null) if(Link != null)
host.OpenUrlExternally(Link); host.OpenUrlExternally(Link);

View File

@ -3,8 +3,7 @@
using OpenTK.Graphics; using OpenTK.Graphics;
using System; using System;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Input.Bindings; using osu.Game.Input.Bindings;
using OpenTK.Input; using OpenTK.Input;
@ -36,20 +35,20 @@ namespace osu.Game.Graphics.UserInterface
// We may not be focused yet, but we need to handle keyboard input to be able to request focus // We may not be focused yet, but we need to handle keyboard input to be able to request focus
public override bool HandleNonPositionalInput => HoldFocus || base.HandleNonPositionalInput; public override bool HandleNonPositionalInput => HoldFocus || base.HandleNonPositionalInput;
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
base.OnFocus(state); base.OnFocus(e);
BorderThickness = 0; BorderThickness = 0;
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
if (!HasFocus) return false; if (!HasFocus) return false;
if (args.Key == Key.Escape) if (e.Key == Key.Escape)
return false; // disable the framework-level handling of escape key for confority (we use GlobalAction.Back). return false; // disable the framework-level handling of escape key for confority (we use GlobalAction.Back).
return base.OnKeyDown(state, args); return base.OnKeyDown(e);
} }
public override bool OnPressed(GlobalAction action) public override bool OnPressed(GlobalAction action)

View File

@ -5,7 +5,7 @@ using osu.Framework.Allocation;
using osu.Framework.Audio; using osu.Framework.Audio;
using osu.Framework.Audio.Sample; using osu.Framework.Audio.Sample;
using osu.Framework.Extensions; using osu.Framework.Extensions;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -21,10 +21,10 @@ namespace osu.Game.Graphics.UserInterface
{ {
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
sampleClick?.Play(); sampleClick?.Play();
return base.OnClick(state); return base.OnClick(e);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]

View File

@ -8,7 +8,7 @@ using osu.Framework.Audio.Sample;
using osu.Framework.Extensions; using osu.Framework.Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -28,10 +28,10 @@ namespace osu.Game.Graphics.UserInterface
RelativeSizeAxes = Axes.Both; RelativeSizeAxes = Axes.Both;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
sampleHover?.Play(); sampleHover?.Play();
return base.OnHover(state); return base.OnHover(e);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]

View File

@ -4,7 +4,7 @@
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -84,16 +84,16 @@ namespace osu.Game.Graphics.UserInterface
}); });
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
icon.FadeColour(IconHoverColour, 500, Easing.OutQuint); icon.FadeColour(IconHoverColour, 500, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
icon.FadeColour(IconColour, 500, Easing.OutQuint); icon.FadeColour(IconColour, 500, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }
} }

View File

@ -6,8 +6,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -77,34 +76,34 @@ namespace osu.Game.Graphics.UserInterface
Enabled.BindValueChanged(enabled => this.FadeColour(enabled ? Color4.White : colours.Gray9, 200, Easing.OutQuint), true); Enabled.BindValueChanged(enabled => this.FadeColour(enabled ? Color4.White : colours.Gray9, 200, Easing.OutQuint), true);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
hover.FadeIn(500, Easing.OutQuint); hover.FadeIn(500, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
hover.FadeOut(500, Easing.OutQuint); hover.FadeOut(500, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
hover.FlashColour(FlashColour, 800, Easing.OutQuint); hover.FlashColour(FlashColour, 800, Easing.OutQuint);
return base.OnClick(state); return base.OnClick(e);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
Content.ScaleTo(0.75f, 2000, Easing.OutQuint); Content.ScaleTo(0.75f, 2000, Easing.OutQuint);
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
Content.ScaleTo(1, 1000, Easing.OutElastic); Content.ScaleTo(1, 1000, Easing.OutElastic);
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
} }
} }

View File

@ -7,8 +7,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -56,28 +55,28 @@ namespace osu.Game.Graphics.UserInterface
this.FadeColour(enabled ? Color4.White : Color4.Gray, 200, Easing.OutQuint); this.FadeColour(enabled ? Color4.White : Color4.Gray, 200, Easing.OutQuint);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
hover.FadeIn(200); hover.FadeIn(200);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
hover.FadeOut(200); hover.FadeOut(200);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
Content.ScaleTo(0.9f, 4000, Easing.OutQuint); Content.ScaleTo(0.9f, 4000, Easing.OutQuint);
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
Content.ScaleTo(1, 1000, Easing.OutElastic); Content.ScaleTo(1, 1000, Easing.OutElastic);
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
protected override SpriteText CreateText() => new OsuSpriteText protected override SpriteText CreateText() => new OsuSpriteText

View File

@ -8,7 +8,7 @@ using osu.Framework.Configuration;
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;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -95,18 +95,18 @@ namespace osu.Game.Graphics.UserInterface
}; };
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
Nub.Glowing = true; Nub.Glowing = true;
Nub.Expanded = true; Nub.Expanded = true;
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
Nub.Glowing = false; Nub.Glowing = false;
Nub.Expanded = false; Nub.Expanded = false;
base.OnHoverLost(state); base.OnHoverLost(e);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]

View File

@ -51,6 +51,8 @@ namespace osu.Game.Graphics.UserInterface
#region OsuDropdownMenu #region OsuDropdownMenu
protected class OsuDropdownMenu : DropdownMenu, IHasAccentColour protected class OsuDropdownMenu : DropdownMenu, IHasAccentColour
{ {
public override bool HandleNonPositionalInput => State == MenuState.Open;
// todo: this uses the same styling as OsuMenu. hopefully we can just use OsuMenu in the future with some refactoring // todo: this uses the same styling as OsuMenu. hopefully we can just use OsuMenu in the future with some refactoring
public OsuDropdownMenu() public OsuDropdownMenu()
{ {
@ -97,6 +99,9 @@ namespace osu.Game.Graphics.UserInterface
#region DrawableOsuDropdownMenuItem #region DrawableOsuDropdownMenuItem
public class DrawableOsuDropdownMenuItem : DrawableDropdownMenuItem, IHasAccentColour public class DrawableOsuDropdownMenuItem : DrawableDropdownMenuItem, IHasAccentColour
{ {
// IsHovered is used
public override bool HandlePositionalInput => true;
private Color4? accentColour; private Color4? accentColour;
public Color4 AccentColour public Color4 AccentColour
{ {

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using OpenTK; using OpenTK;
@ -97,25 +97,25 @@ namespace osu.Game.Graphics.UserInterface
} }
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
sampleHover.Play(); sampleHover.Play();
text.BoldText.FadeIn(transition_length, Easing.OutQuint); text.BoldText.FadeIn(transition_length, Easing.OutQuint);
text.NormalText.FadeOut(transition_length, Easing.OutQuint); text.NormalText.FadeOut(transition_length, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
text.BoldText.FadeOut(transition_length, Easing.OutQuint); text.BoldText.FadeOut(transition_length, Easing.OutQuint);
text.NormalText.FadeIn(transition_length, Easing.OutQuint); text.NormalText.FadeIn(transition_length, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
sampleClick.Play(); sampleClick.Play();
return base.OnClick(state); return base.OnClick(e);
} }
protected sealed override Drawable CreateContent() => text = CreateTextContainer(); protected sealed override Drawable CreateContent() => text = CreateTextContainer();

View File

@ -9,8 +9,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Cursor; using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Framework.Platform; using osu.Framework.Platform;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
@ -43,23 +42,23 @@ namespace osu.Game.Graphics.UserInterface
this.host = host; this.host = host;
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
if (args.Key == Key.CapsLock) if (e.Key == Key.CapsLock)
updateCapsWarning(host.CapsLockEnabled); updateCapsWarning(host.CapsLockEnabled);
return base.OnKeyDown(state, args); return base.OnKeyDown(e);
} }
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
updateCapsWarning(host.CapsLockEnabled); updateCapsWarning(host.CapsLockEnabled);
base.OnFocus(state); base.OnFocus(e);
} }
protected override void OnFocusLost(InputState state) protected override void OnFocusLost(FocusLostEvent e)
{ {
updateCapsWarning(false); updateCapsWarning(false);
base.OnFocusLost(state); base.OnFocusLost(e);
} }
private void updateCapsWarning(bool visible) => warning.FadeTo(visible ? 1 : 0, 250, Easing.OutQuint); private void updateCapsWarning(bool visible) => warning.FadeTo(visible ? 1 : 0, 250, Easing.OutQuint);

View File

@ -13,8 +13,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Graphics.Cursor; using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -125,16 +124,16 @@ namespace osu.Game.Graphics.UserInterface
AccentColour = colours.Pink; AccentColour = colours.Pink;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
Nub.Glowing = true; Nub.Glowing = true;
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
Nub.Glowing = false; Nub.Glowing = false;
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override void OnUserChange() protected override void OnUserChange()
@ -164,16 +163,16 @@ namespace osu.Game.Graphics.UserInterface
sample.Play(); sample.Play();
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
Nub.Current.Value = true; Nub.Current.Value = true;
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
Nub.Current.Value = false; Nub.Current.Value = false;
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
protected override void UpdateAfterChildren() protected override void UpdateAfterChildren()

View File

@ -14,7 +14,7 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.MathUtils; using osu.Framework.MathUtils;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -126,14 +126,14 @@ namespace osu.Game.Graphics.UserInterface
Text.FadeColour(AccentColour, transition_length, Easing.OutQuint); Text.FadeColour(AccentColour, transition_length, Easing.OutQuint);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
if (!Active) if (!Active)
fadeActive(); fadeActive();
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (!Active) if (!Active)
fadeInactive(); fadeInactive();
@ -265,16 +265,16 @@ namespace osu.Game.Graphics.UserInterface
Padding = new MarginPadding { Left = 5, Right = 5 }; Padding = new MarginPadding { Left = 5, Right = 5 };
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
Foreground.Colour = BackgroundColour; Foreground.Colour = BackgroundColour;
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
Foreground.Colour = BackgroundColourHover; Foreground.Colour = BackgroundColourHover;
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }
} }

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics.Shapes;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -59,18 +59,18 @@ namespace osu.Game.Graphics.UserInterface
text.FadeColour(AccentColour, transition_length, Easing.OutQuint); text.FadeColour(AccentColour, transition_length, Easing.OutQuint);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
fadeIn(); fadeIn();
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (!Current) if (!Current)
fadeOut(); fadeOut();
base.OnHoverLost(state); base.OnHoverLost(e);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]

View File

@ -9,7 +9,7 @@ using osu.Game.Graphics.Sprites;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Input.Bindings; using osu.Game.Input.Bindings;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
@ -44,17 +44,17 @@ namespace osu.Game.Graphics.UserInterface
BorderColour = colour.Yellow; BorderColour = colour.Yellow;
} }
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
BorderThickness = 3; BorderThickness = 3;
base.OnFocus(state); base.OnFocus(e);
} }
protected override void OnFocusLost(InputState state) protected override void OnFocusLost(FocusLostEvent e)
{ {
BorderThickness = 0; BorderThickness = 0;
base.OnFocusLost(state); base.OnFocusLost(e);
} }
protected override Drawable GetDrawableCharacter(char c) => new OsuSpriteText { Text = c.ToString(), TextSize = CalculatedTextSize }; protected override Drawable GetDrawableCharacter(char c) => new OsuSpriteText { Text = c.ToString(), TextSize = CalculatedTextSize };

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
@ -67,14 +67,14 @@ namespace osu.Game.Graphics.UserInterface
box.Colour = colours.Yellow; box.Colour = colours.Yellow;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
if (!Active) if (!Active)
slideActive(); slideActive();
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (!Active) if (!Active)
slideInactive(); slideInactive();

View File

@ -2,8 +2,7 @@
// 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 osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using OpenTK; using OpenTK;
using OpenTK.Input; using OpenTK.Input;
@ -33,11 +32,11 @@ namespace osu.Game.Graphics.UserInterface
PlaceholderText = "type to search"; PlaceholderText = "type to search";
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
if (!state.Keyboard.ControlPressed && !state.Keyboard.ShiftPressed) if (!e.ControlPressed && !e.ShiftPressed)
{ {
switch (args.Key) switch (e.Key)
{ {
case Key.Left: case Key.Left:
case Key.Right: case Key.Right:
@ -49,7 +48,7 @@ namespace osu.Game.Graphics.UserInterface
if (!AllowCommit) if (!AllowCommit)
{ {
switch (args.Key) switch (e.Key)
{ {
case Key.KeypadEnter: case Key.KeypadEnter:
case Key.Enter: case Key.Enter:
@ -57,16 +56,16 @@ namespace osu.Game.Graphics.UserInterface
} }
} }
if (state.Keyboard.ShiftPressed) if (e.ShiftPressed)
{ {
switch (args.Key) switch (e.Key)
{ {
case Key.Delete: case Key.Delete:
return false; return false;
} }
} }
return base.OnKeyDown(state, args); return base.OnKeyDown(e);
} }
} }
} }

View File

@ -13,8 +13,7 @@ using osu.Game.Beatmaps.ControlPoints;
using osu.Framework.Audio.Track; using osu.Framework.Audio.Track;
using System; using System;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
namespace osu.Game.Graphics.UserInterface namespace osu.Game.Graphics.UserInterface
{ {
@ -172,7 +171,7 @@ namespace osu.Game.Graphics.UserInterface
public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => IconLayer.ReceivePositionalInputAt(screenSpacePos) || TextLayer.ReceivePositionalInputAt(screenSpacePos); public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => IconLayer.ReceivePositionalInputAt(screenSpacePos) || TextLayer.ReceivePositionalInputAt(screenSpacePos);
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
this.ResizeTo(SIZE_EXTENDED, transform_time, Easing.OutElastic); this.ResizeTo(SIZE_EXTENDED, transform_time, Easing.OutElastic);
IconLayer.FadeColour(HoverColour, transform_time, Easing.OutElastic); IconLayer.FadeColour(HoverColour, transform_time, Easing.OutElastic);
@ -182,7 +181,7 @@ namespace osu.Game.Graphics.UserInterface
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
this.ResizeTo(SIZE_RETRACTED, transform_time, Easing.OutElastic); this.ResizeTo(SIZE_RETRACTED, transform_time, Easing.OutElastic);
IconLayer.FadeColour(TextLayer.Colour, transform_time, Easing.OutElastic); IconLayer.FadeColour(TextLayer.Colour, transform_time, Easing.OutElastic);
@ -190,12 +189,12 @@ namespace osu.Game.Graphics.UserInterface
bouncingIcon.ScaleTo(1, transform_time, Easing.OutElastic); bouncingIcon.ScaleTo(1, transform_time, Easing.OutElastic);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
return true; return true;
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
var flash = new Box var flash = new Box
{ {
@ -209,7 +208,7 @@ namespace osu.Game.Graphics.UserInterface
flash.FadeOut(500, Easing.OutQuint); flash.FadeOut(500, Easing.OutQuint);
flash.Expire(); flash.Expire();
return base.OnClick(state); return base.OnClick(e);
} }
private class BouncingIcon : BeatSyncedContainer private class BouncingIcon : BeatSyncedContainer

View File

@ -65,7 +65,8 @@ namespace osu.Game
private BeatmapSetOverlay beatmapSetOverlay; private BeatmapSetOverlay beatmapSetOverlay;
private ScreenshotManager screenshotManager; [Cached]
private readonly ScreenshotManager screenshotManager = new ScreenshotManager();
protected RavenLogger RavenLogger; protected RavenLogger RavenLogger;
@ -289,9 +290,6 @@ namespace osu.Game
protected override void LoadComplete() protected override void LoadComplete()
{ {
// this needs to be cached before base.LoadComplete as it is used by MenuCursorContainer.
dependencies.Cache(screenshotManager = new ScreenshotManager());
base.LoadComplete(); base.LoadComplete();
// The next time this is updated is in UpdateAfterChildren, which occurs too late and results // The next time this is updated is in UpdateAfterChildren, which occurs too late and results

View File

@ -10,7 +10,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Beatmaps.Drawables; using osu.Game.Beatmaps.Drawables;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -174,9 +174,9 @@ namespace osu.Game.Overlays.BeatmapSet
{ {
public Action OnLostHover; public Action OnLostHover;
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
base.OnHoverLost(state); base.OnHoverLost(e);
OnLostHover?.Invoke(); OnLostHover?.Invoke();
} }
} }
@ -241,24 +241,24 @@ namespace osu.Game.Overlays.BeatmapSet
}; };
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
fadeIn(); fadeIn();
OnHovered?.Invoke(Beatmap); OnHovered?.Invoke(Beatmap);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (State == DifficultySelectorState.NotSelected) if (State == DifficultySelectorState.NotSelected)
fadeOut(); fadeOut();
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
OnClicked?.Invoke(Beatmap); OnClicked?.Invoke(Beatmap);
return base.OnClick(state); return base.OnClick(e);
} }
private void fadeIn() private void fadeIn()

View File

@ -7,7 +7,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Audio; using osu.Game.Audio;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -89,16 +89,16 @@ namespace osu.Game.Overlays.BeatmapSet.Buttons
progress.Width = 0; progress.Width = 0;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
bg.FadeColour(Color4.Black.Opacity(0.5f), 100); bg.FadeColour(Color4.Black.Opacity(0.5f), 100);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
bg.FadeColour(Color4.Black.Opacity(0.25f), 100); bg.FadeColour(Color4.Black.Opacity(0.25f), 100);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }
} }

View File

@ -3,7 +3,7 @@
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Users; using osu.Game.Users;
@ -53,7 +53,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
this.profile = profile; this.profile = profile;
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
profile?.ShowUser(user); profile?.ShowUser(user);
return true; return true;

View File

@ -6,7 +6,7 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Online.API.Requests.Responses; using osu.Game.Online.API.Requests.Responses;
@ -125,18 +125,18 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
background.Colour = colours.Gray4; background.Colour = colours.Gray4;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
background.FadeIn(fade_duration, Easing.OutQuint); background.FadeIn(fade_duration, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
background.FadeOut(fade_duration, Easing.OutQuint); background.FadeOut(fade_duration, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) => true; protected override bool OnClick(ClickEvent e) => true;
} }
} }

View File

@ -8,7 +8,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Online.API.Requests.Responses; using osu.Game.Online.API.Requests.Responses;
@ -184,16 +184,16 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
BorderColour = rankText.Colour = colours.Yellow; BorderColour = rankText.Colour = colours.Yellow;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
background.FadeIn(fade_duration, Easing.OutQuint); background.FadeIn(fade_duration, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
background.FadeOut(fade_duration, Easing.OutQuint); background.FadeOut(fade_duration, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
private class InfoColumn : FillFlowContainer private class InfoColumn : FillFlowContainer

View File

@ -7,7 +7,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
@ -127,7 +127,7 @@ namespace osu.Game.Overlays
FadeEdgeEffectTo(0, WaveContainer.DISAPPEAR_DURATION, Easing.Out).OnComplete(_ => BeatmapSet = null); FadeEdgeEffectTo(0, WaveContainer.DISAPPEAR_DURATION, Easing.Out).OnComplete(_ => BeatmapSet = null);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
State = Visibility.Hidden; State = Visibility.Hidden;
return true; return true;

View File

@ -9,7 +9,7 @@ using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Online.Chat; using osu.Game.Online.Chat;
@ -155,15 +155,15 @@ namespace osu.Game.Overlays.Chat
FinishTransforms(true); FinishTransforms(true);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
if (!channel.Joined.Value) if (!channel.Joined.Value)
name.FadeColour(hoverColour, 50, Easing.OutQuint); name.FadeColour(hoverColour, 50, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (!channel.Joined.Value) if (!channel.Joined.Value)
name.FadeColour(Color4.White, transition_duration); name.FadeColour(Color4.White, transition_duration);

View File

@ -10,7 +10,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Backgrounds; using osu.Game.Graphics.Backgrounds;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -150,10 +150,10 @@ namespace osu.Game.Overlays.Chat
headerBg.Colour = colours.Gray2.Opacity(0.75f); headerBg.Colour = colours.Gray2.Opacity(0.75f);
} }
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
GetContainingInputManager().ChangeFocus(search); GetContainingInputManager().ChangeFocus(search);
base.OnFocus(state); base.OnFocus(e);
} }
protected override void PopIn() protected override void PopIn()

View File

@ -17,8 +17,7 @@ using OpenTK.Input;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using System; using System;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
namespace osu.Game.Overlays.Chat namespace osu.Game.Overlays.Chat
@ -144,9 +143,9 @@ namespace osu.Game.Overlays.Chat
textBold.FadeOut(transition_length, Easing.OutQuint); textBold.FadeOut(transition_length, Easing.OutQuint);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
if (args.Button == MouseButton.Middle) if (e.Button == MouseButton.Middle)
{ {
closeButton.Action(); closeButton.Action();
return true; return true;
@ -155,7 +154,7 @@ namespace osu.Game.Overlays.Chat
return false; return false;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
if (IsRemovable) if (IsRemovable)
closeButton.FadeIn(200, Easing.OutQuint); closeButton.FadeIn(200, Easing.OutQuint);
@ -165,7 +164,7 @@ namespace osu.Game.Overlays.Chat
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
closeButton.FadeOut(200, Easing.OutQuint); closeButton.FadeOut(200, Easing.OutQuint);
updateState(); updateState();
@ -291,28 +290,28 @@ namespace osu.Game.Overlays.Chat
}; };
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
icon.ScaleTo(0.5f, 1000, Easing.OutQuint); icon.ScaleTo(0.5f, 1000, Easing.OutQuint);
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
icon.ScaleTo(0.75f, 1000, Easing.OutElastic); icon.ScaleTo(0.75f, 1000, Easing.OutElastic);
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
icon.FadeColour(Color4.Red, 200, Easing.OutQuint); icon.FadeColour(Color4.Red, 200, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
icon.FadeColour(Color4.White, 200, Easing.OutQuint); icon.FadeColour(Color4.White, 200, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }

View File

@ -3,7 +3,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -13,7 +12,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Threading; using osu.Framework.Threading;
using osu.Game.Configuration; using osu.Game.Configuration;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -52,7 +51,7 @@ namespace osu.Game.Overlays
private readonly ChatTabControl channelTabs; private readonly ChatTabControl channelTabs;
private readonly Container chatContainer; private readonly Container chatContainer;
private readonly Container tabsArea; private readonly TabsArea tabsArea;
private readonly Box chatBackground; private readonly Box chatBackground;
private readonly Box tabBackground; private readonly Box tabBackground;
@ -146,11 +145,8 @@ namespace osu.Game.Overlays
loading = new LoadingAnimation(), loading = new LoadingAnimation(),
} }
}, },
tabsArea = new Container tabsArea = new TabsArea
{ {
Name = @"tabs area",
RelativeSizeAxes = Axes.X,
Height = TAB_AREA_HEIGHT,
Children = new Drawable[] Children = new Drawable[]
{ {
tabBackground = new Box tabBackground = new Box
@ -191,25 +187,22 @@ namespace osu.Game.Overlays
public void OpenChannel(Channel channel) => addChannel(channel); public void OpenChannel(Channel channel) => addChannel(channel);
protected override bool OnDragStart(InputState state) protected override bool OnDragStart(DragStartEvent e)
{ {
isDragging = tabsArea.IsHovered; isDragging = tabsArea.IsHovered;
if (!isDragging) if (!isDragging)
return base.OnDragStart(state); return base.OnDragStart(e);
startDragChatHeight = ChatHeight.Value; startDragChatHeight = ChatHeight.Value;
return true; return true;
} }
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
if (isDragging) if (isDragging)
{ {
Trace.Assert(state.Mouse.PositionMouseDown != null); double targetChatHeight = startDragChatHeight - (e.MousePosition.Y - e.MouseDownPosition.Y) / Parent.DrawSize.Y;
// ReSharper disable once PossibleInvalidOperationException
double targetChatHeight = startDragChatHeight - (state.Mouse.Position.Y - state.Mouse.PositionMouseDown.Value.Y) / Parent.DrawSize.Y;
// If the channel selection screen is shown, mind its minimum height // If the channel selection screen is shown, mind its minimum height
if (channelSelection.State == Visibility.Visible && targetChatHeight > 1f - channel_selection_min_height) if (channelSelection.State == Visibility.Visible && targetChatHeight > 1f - channel_selection_min_height)
@ -221,10 +214,10 @@ namespace osu.Game.Overlays
return true; return true;
} }
protected override bool OnDragEnd(InputState state) protected override bool OnDragEnd(DragEndEvent e)
{ {
isDragging = false; isDragging = false;
return base.OnDragEnd(state); return base.OnDragEnd(e);
} }
public void APIStateChanged(APIAccess api, APIState state) public void APIStateChanged(APIAccess api, APIState state)
@ -242,11 +235,11 @@ namespace osu.Game.Overlays
public override bool AcceptsFocus => true; public override bool AcceptsFocus => true;
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
//this is necessary as textbox is masked away and therefore can't get focus :( //this is necessary as textbox is masked away and therefore can't get focus :(
GetContainingInputManager().ChangeFocus(textbox); GetContainingInputManager().ChangeFocus(textbox);
base.OnFocus(state); base.OnFocus(e);
} }
protected override void PopIn() protected override void PopIn()
@ -298,7 +291,7 @@ namespace osu.Game.Overlays
messageRequest?.Cancel(); messageRequest?.Cancel();
ListChannelsRequest req = new ListChannelsRequest(); ListChannelsRequest req = new ListChannelsRequest();
req.Success += delegate (List<Channel> channels) req.Success += delegate(List<Channel> channels)
{ {
AvailableChannels = channels; AvailableChannels = channels;
@ -330,10 +323,7 @@ namespace osu.Game.Overlays
protected Channel CurrentChannel protected Channel CurrentChannel
{ {
get get { return currentChannel; }
{
return currentChannel;
}
set set
{ {
@ -452,13 +442,7 @@ namespace osu.Game.Overlays
if (updates?.Presence != null) if (updates?.Presence != null)
{ {
foreach (var channel in updates.Presence) foreach (var channel in updates.Presence)
{ addChannel(AvailableChannels.Find(c => c.Id == channel.Id));
if (careChannels.Find(c => c.Id == channel.Id) == null)
{
channel.Joined.Value = true;
addChannel(channel);
}
}
foreach (var group in updates.Messages.GroupBy(m => m.ChannelId)) foreach (var group in updates.Messages.GroupBy(m => m.ChannelId))
careChannels.Find(c => c.Id == group.Key)?.AddNewMessages(group.ToArray()); careChannels.Find(c => c.Id == group.Key)?.AddNewMessages(group.ToArray());
@ -469,10 +453,7 @@ namespace osu.Game.Overlays
fetchReq = null; fetchReq = null;
}; };
fetchReq.Failure += delegate fetchReq.Failure += delegate { fetchReq = null; };
{
fetchReq = null;
};
api.Queue(fetchReq); api.Queue(fetchReq);
} }
@ -545,5 +526,18 @@ namespace osu.Game.Overlays
api.Queue(req); api.Queue(req);
} }
private class TabsArea : Container
{
// IsHovered is used
public override bool HandlePositionalInput => true;
public TabsArea()
{
Name = @"tabs area";
RelativeSizeAxes = Axes.X;
Height = TAB_AREA_HEIGHT;
}
}
} }
} }

View File

@ -8,8 +8,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Backgrounds; using osu.Game.Graphics.Backgrounds;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
@ -206,12 +205,12 @@ namespace osu.Game.Overlays.Dialog
return base.OnPressed(action); return base.OnPressed(action);
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
if (args.Repeat) return false; if (e.Repeat) return false;
// press button at number if 1-9 on number row or keypad are pressed // press button at number if 1-9 on number row or keypad are pressed
var k = args.Key; var k = e.Key;
if (k >= Key.Number1 && k <= Key.Number9) if (k >= Key.Number1 && k <= Key.Number9)
{ {
pressButtonAtIndex(k - Key.Number1); pressButtonAtIndex(k - Key.Number1);
@ -224,7 +223,7 @@ namespace osu.Game.Overlays.Dialog
return true; return true;
} }
return base.OnKeyDown(state, args); return base.OnKeyDown(e);
} }
protected override void PopIn() protected override void PopIn()

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics.Containers;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Localisation; using osu.Framework.Localisation;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Beatmaps.Drawables; using osu.Game.Beatmaps.Drawables;
@ -227,15 +227,15 @@ namespace osu.Game.Overlays.Direct
PreviewPlaying.ValueChanged += _ => updateStatusContainer(); PreviewPlaying.ValueChanged += _ => updateStatusContainer();
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
updateStatusContainer(); updateStatusContainer();
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
base.OnHoverLost(state); base.OnHoverLost(e);
updateStatusContainer(); updateStatusContainer();
} }

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Audio; using osu.Game.Audio;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Beatmaps.Drawables; using osu.Game.Beatmaps.Drawables;
@ -121,27 +121,27 @@ namespace osu.Game.Overlays.Direct
} }
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
content.TweenEdgeEffectTo(edgeEffectHovered, hover_transition_time, Easing.OutQuint); content.TweenEdgeEffectTo(edgeEffectHovered, hover_transition_time, Easing.OutQuint);
content.MoveToY(-4, hover_transition_time, Easing.OutQuint); content.MoveToY(-4, hover_transition_time, Easing.OutQuint);
if (FadePlayButton) if (FadePlayButton)
PlayButton.FadeIn(120, Easing.InOutQuint); PlayButton.FadeIn(120, Easing.InOutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
content.TweenEdgeEffectTo(edgeEffectNormal, hover_transition_time, Easing.OutQuint); content.TweenEdgeEffectTo(edgeEffectNormal, hover_transition_time, Easing.OutQuint);
content.MoveToY(0, hover_transition_time, Easing.OutQuint); content.MoveToY(0, hover_transition_time, Easing.OutQuint);
if (FadePlayButton && !PreviewPlaying) if (FadePlayButton && !PreviewPlaying)
PlayButton.FadeOut(120, Easing.InOutQuint); PlayButton.FadeOut(120, Easing.InOutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
ShowInformation(); ShowInformation();
return true; return true;

View File

@ -5,7 +5,7 @@ using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Audio; using osu.Game.Audio;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -93,23 +93,23 @@ namespace osu.Game.Overlays.Direct
hoverColour = colour.Yellow; hoverColour = colour.Yellow;
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
Playing.Toggle(); Playing.Toggle();
return true; return true;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
icon.FadeColour(hoverColour, 120, Easing.InOutQuint); icon.FadeColour(hoverColour, 120, Easing.InOutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (!Playing.Value) if (!Playing.Value)
icon.FadeColour(Color4.White, 120, Easing.InOutQuint); icon.FadeColour(Color4.White, 120, Easing.InOutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
private void playingStateChanged(bool playing) private void playingStateChanged(bool playing)

View File

@ -10,15 +10,13 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Input; using osu.Game.Input;
using OpenTK.Graphics; using OpenTK.Graphics;
using OpenTK.Input; using OpenTK.Input;
using JoystickEventArgs = osu.Framework.Input.EventArgs.JoystickEventArgs;
namespace osu.Game.Overlays.KeyBinding namespace osu.Game.Overlays.KeyBinding
{ {
@ -125,18 +123,18 @@ namespace osu.Game.Overlays.KeyBinding
} }
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
FadeEdgeEffectTo(1, transition_time, Easing.OutQuint); FadeEdgeEffectTo(1, transition_time, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
FadeEdgeEffectTo(0, transition_time, Easing.OutQuint); FadeEdgeEffectTo(0, transition_time, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
public override bool AcceptsFocus => bindTarget == null; public override bool AcceptsFocus => bindTarget == null;
@ -149,16 +147,16 @@ namespace osu.Game.Overlays.KeyBinding
private bool isModifier(Key k) => k < Key.F1; private bool isModifier(Key k) => k < Key.F1;
protected override bool OnClick(InputState state) => true; protected override bool OnClick(ClickEvent e) => true;
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
if (!HasFocus || !bindTarget.IsHovered) if (!HasFocus || !bindTarget.IsHovered)
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
if (!AllowMainMouseButtons) if (!AllowMainMouseButtons)
{ {
switch (args.Button) switch (e.Button)
{ {
case MouseButton.Left: case MouseButton.Left:
case MouseButton.Right: case MouseButton.Right:
@ -166,15 +164,15 @@ namespace osu.Game.Overlays.KeyBinding
} }
} }
bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state)); bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState));
return true; return true;
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
// don't do anything until the last button is released. // don't do anything until the last button is released.
if (!HasFocus || state.Mouse.Buttons.Any()) if (!HasFocus || e.HasAnyButtonPressed)
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
if (bindTarget.IsHovered) if (bindTarget.IsHovered)
finalise(); finalise();
@ -183,31 +181,31 @@ namespace osu.Game.Overlays.KeyBinding
return true; return true;
} }
protected override bool OnScroll(InputState state) protected override bool OnScroll(ScrollEvent e)
{ {
if (HasFocus) if (HasFocus)
{ {
if (bindTarget.IsHovered) if (bindTarget.IsHovered)
{ {
bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state, state.Mouse.ScrollDelta)); bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState, e.ScrollDelta));
finalise(); finalise();
return true; return true;
} }
} }
return base.OnScroll(state); return base.OnScroll(e);
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
if (!HasFocus) if (!HasFocus)
return false; return false;
switch (args.Key) switch (e.Key)
{ {
case Key.Delete: case Key.Delete:
{ {
if (state.Keyboard.ShiftPressed) if (e.ShiftPressed)
{ {
bindTarget.UpdateKeyCombination(InputKey.None); bindTarget.UpdateKeyCombination(InputKey.None);
finalise(); finalise();
@ -218,35 +216,35 @@ namespace osu.Game.Overlays.KeyBinding
} }
} }
bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state)); bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState));
if (!isModifier(args.Key)) finalise(); if (!isModifier(e.Key)) finalise();
return true; return true;
} }
protected override bool OnKeyUp(InputState state, KeyUpEventArgs args) protected override bool OnKeyUp(KeyUpEvent e)
{ {
if (!HasFocus) return base.OnKeyUp(state, args); if (!HasFocus) return base.OnKeyUp(e);
finalise(); finalise();
return true; return true;
} }
protected override bool OnJoystickPress(InputState state, JoystickEventArgs args) protected override bool OnJoystickPress(JoystickPressEvent e)
{ {
if (!HasFocus) if (!HasFocus)
return false; return false;
bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(state)); bindTarget.UpdateKeyCombination(KeyCombination.FromInputState(e.CurrentState));
finalise(); finalise();
return true; return true;
} }
protected override bool OnJoystickRelease(InputState state, JoystickEventArgs args) protected override bool OnJoystickRelease(JoystickReleaseEvent e)
{ {
if (!HasFocus) if (!HasFocus)
return base.OnJoystickRelease(state, args); return base.OnJoystickRelease(e);
finalise(); finalise();
return true; return true;
@ -273,7 +271,7 @@ namespace osu.Game.Overlays.KeyBinding
pressAKey.BypassAutoSizeAxes |= Axes.Y; pressAKey.BypassAutoSizeAxes |= Axes.Y;
} }
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
AutoSizeDuration = 500; AutoSizeDuration = 500;
AutoSizeEasing = Easing.OutQuint; AutoSizeEasing = Easing.OutQuint;
@ -282,13 +280,13 @@ namespace osu.Game.Overlays.KeyBinding
pressAKey.BypassAutoSizeAxes &= ~Axes.Y; pressAKey.BypassAutoSizeAxes &= ~Axes.Y;
updateBindTarget(); updateBindTarget();
base.OnFocus(state); base.OnFocus(e);
} }
protected override void OnFocusLost(InputState state) protected override void OnFocusLost(FocusLostEvent e)
{ {
finalise(); finalise();
base.OnFocusLost(state); base.OnFocusLost(e);
} }
private void updateBindTarget() private void updateBindTarget()
@ -367,16 +365,16 @@ namespace osu.Game.Overlays.KeyBinding
hoverColour = colours.YellowDark; hoverColour = colours.YellowDark;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
updateHoverState(); updateHoverState();
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
updateHoverState(); updateHoverState();
base.OnHoverLost(state); base.OnHoverLost(e);
} }
private void updateHoverState() private void updateHoverState()

View File

@ -6,8 +6,7 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -138,16 +137,16 @@ namespace osu.Game.Overlays
}; };
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
aspect.ScaleTo(0.75f, 2000, Easing.OutQuint); aspect.ScaleTo(0.75f, 2000, Easing.OutQuint);
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
aspect.ScaleTo(1, 1000, Easing.OutElastic); aspect.ScaleTo(1, 1000, Easing.OutElastic);
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
public bool OnPressed(GlobalAction action) public bool OnPressed(GlobalAction action)

View File

@ -19,8 +19,7 @@ using osu.Framework.Graphics.Textures;
using OpenTK.Input; using OpenTK.Input;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using System; using System;
using System.Linq; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Framework.MathUtils; using osu.Framework.MathUtils;
namespace osu.Game.Overlays namespace osu.Game.Overlays
@ -176,15 +175,15 @@ namespace osu.Game.Overlays
particleContainer.Add(new MedalParticle(RNG.Next(0, 359))); particleContainer.Add(new MedalParticle(RNG.Next(0, 359)));
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
dismiss(); dismiss();
return true; return true;
} }
protected override void OnFocusLost(InputState state) protected override void OnFocusLost(FocusLostEvent e)
{ {
if (state.Keyboard.Keys.Contains(Key.Escape)) dismiss(); if (e.CurrentState.Keyboard.Keys.IsPressed(Key.Escape)) dismiss();
} }
private const double initial_duration = 400; private const double initial_duration = 400;

View File

@ -13,8 +13,7 @@ using osu.Game.Rulesets.UI;
using System; using System;
using System.Linq; using System.Linq;
using osu.Framework.Graphics.Cursor; using osu.Framework.Graphics.Cursor;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
namespace osu.Game.Overlays.Mods namespace osu.Game.Overlays.Mods
@ -149,20 +148,20 @@ namespace osu.Game.Overlays.Mods
public virtual Mod SelectedMod => Mods.ElementAtOrDefault(selectedIndex); public virtual Mod SelectedMod => Mods.ElementAtOrDefault(selectedIndex);
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
scaleContainer.ScaleTo(0.9f, 800, Easing.Out); scaleContainer.ScaleTo(0.9f, 800, Easing.Out);
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
scaleContainer.ScaleTo(1, 500, Easing.OutElastic); scaleContainer.ScaleTo(1, 500, Easing.OutElastic);
// only trigger the event if we are inside the area of the button // only trigger the event if we are inside the area of the button
if (Contains(ToScreenSpace(state.Mouse.Position - Position))) if (Contains(e.ScreenSpaceMousePosition))
{ {
switch (args.Button) switch (e.Button)
{ {
case MouseButton.Left: case MouseButton.Left:
SelectNext(1); SelectNext(1);

View File

@ -10,8 +10,7 @@ using osu.Game.Rulesets.Mods;
using System; using System;
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
namespace osu.Game.Overlays.Mods namespace osu.Game.Overlays.Mods
{ {
@ -55,16 +54,16 @@ namespace osu.Game.Overlays.Mods
private ModButton[] buttons = { }; private ModButton[] buttons = { };
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
if (ToggleKeys != null) if (ToggleKeys != null)
{ {
var index = Array.IndexOf(ToggleKeys, args.Key); var index = Array.IndexOf(ToggleKeys, e.Key);
if (index > -1 && index < buttons.Length) if (index > -1 && index < buttons.Length)
buttons[index].SelectNext(state.Keyboard.ShiftPressed ? -1 : 1); buttons[index].SelectNext(e.ShiftPressed ? -1 : 1);
} }
return base.OnKeyDown(state, args); return base.OnKeyDown(e);
} }
public void DeselectAll() => DeselectTypes(buttons.Select(b => b.SelectedMod?.GetType()).Where(t => t != null)); public void DeselectAll() => DeselectTypes(buttons.Select(b => b.SelectedMod?.GetType()).Where(t => t != null));

View File

@ -8,8 +8,7 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Framework.Localisation; using osu.Framework.Localisation;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -37,16 +36,16 @@ namespace osu.Game.Overlays.Music
public bool IsDraggable { get; private set; } public bool IsDraggable { get; private set; }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
IsDraggable = handle.IsHovered; IsDraggable = handle.IsHovered;
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
IsDraggable = false; IsDraggable = false;
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
private bool selected; private bool selected;
@ -123,19 +122,19 @@ namespace osu.Game.Overlays.Music
}); });
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
handle.FadeIn(fade_duration); handle.FadeIn(fade_duration);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
handle.FadeOut(fade_duration); handle.FadeOut(fade_duration);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
OnSelect?.Invoke(BeatmapSetInfo); OnSelect?.Invoke(BeatmapSetInfo);
return true; return true;

View File

@ -8,7 +8,7 @@ using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using OpenTK; using OpenTK;
@ -115,25 +115,25 @@ namespace osu.Game.Overlays.Music
private Vector2 nativeDragPosition; private Vector2 nativeDragPosition;
private PlaylistItem draggedItem; private PlaylistItem draggedItem;
protected override bool OnDragStart(InputState state) protected override bool OnDragStart(DragStartEvent e)
{ {
nativeDragPosition = state.Mouse.NativeState.Position; nativeDragPosition = e.ScreenSpaceMousePosition;
draggedItem = items.FirstOrDefault(d => d.IsDraggable); draggedItem = items.FirstOrDefault(d => d.IsDraggable);
return draggedItem != null || base.OnDragStart(state); return draggedItem != null || base.OnDragStart(e);
} }
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
nativeDragPosition = state.Mouse.NativeState.Position; nativeDragPosition = e.ScreenSpaceMousePosition;
if (draggedItem == null) if (draggedItem == null)
return base.OnDrag(state); return base.OnDrag(e);
return true; return true;
} }
protected override bool OnDragEnd(InputState state) protected override bool OnDragEnd(DragEndEvent e)
{ {
nativeDragPosition = state.Mouse.NativeState.Position; nativeDragPosition = e.ScreenSpaceMousePosition;
var handled = draggedItem != null || base.OnDragEnd(state); var handled = draggedItem != null || base.OnDragEnd(e);
draggedItem = null; draggedItem = null;
return handled; return handled;

View File

@ -13,7 +13,7 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Textures; using osu.Framework.Graphics.Textures;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Localisation; using osu.Framework.Localisation;
using osu.Framework.Threading; using osu.Framework.Threading;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
@ -457,20 +457,14 @@ namespace osu.Game.Overlays
private class DragContainer : Container private class DragContainer : Container
{ {
private Vector2 dragStart; protected override bool OnDragStart(DragStartEvent e)
protected override bool OnDragStart(InputState state)
{ {
base.OnDragStart(state);
dragStart = state.Mouse.Position;
return true; return true;
} }
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
if (base.OnDrag(state)) return true; Vector2 change = e.MousePosition - e.MouseDownPosition;
Vector2 change = state.Mouse.Position - dragStart;
// Diminish the drag distance as we go further to simulate "rubber band" feeling. // Diminish the drag distance as we go further to simulate "rubber band" feeling.
change *= change.Length <= 0 ? 0 : (float)Math.Pow(change.Length, 0.7f) / change.Length; change *= change.Length <= 0 ? 0 : (float)Math.Pow(change.Length, 0.7f) / change.Length;
@ -479,10 +473,10 @@ namespace osu.Game.Overlays
return true; return true;
} }
protected override bool OnDragEnd(InputState state) protected override bool OnDragEnd(DragEndEvent e)
{ {
this.MoveTo(Vector2.Zero, 800, Easing.OutElastic); this.MoveTo(Vector2.Zero, 800, Easing.OutElastic);
return base.OnDragEnd(state); return base.OnDragEnd(e);
} }
} }
} }

View File

@ -11,7 +11,7 @@ using osu.Game.Graphics;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
namespace osu.Game.Overlays.Notifications namespace osu.Game.Overlays.Notifications
@ -118,19 +118,19 @@ namespace osu.Game.Overlays.Notifications
}); });
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
closeButton.FadeIn(75); closeButton.FadeIn(75);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
closeButton.FadeOut(75); closeButton.FadeOut(75);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if (Activated?.Invoke() ?? true) if (Activated?.Invoke() ?? true)
Close(); Close();
@ -185,16 +185,16 @@ namespace osu.Game.Overlays.Notifications
hoverColour = colours.Yellow; hoverColour = colours.Yellow;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
this.FadeColour(hoverColour, 200); this.FadeColour(hoverColour, 200);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
this.FadeColour(OsuColour.Gray(0.2f), 200); this.FadeColour(OsuColour.Gray(0.2f), 200);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }

View File

@ -25,9 +25,6 @@ namespace osu.Game.Overlays
{ {
private readonly Container box; private readonly Container box;
public override bool HandleNonPositionalInput => false;
public override bool HandlePositionalInput => false;
private readonly SpriteText textLine1; private readonly SpriteText textLine1;
private readonly SpriteText textLine2; private readonly SpriteText textLine2;
private readonly SpriteText textLine3; private readonly SpriteText textLine3;

View File

@ -9,7 +9,7 @@ using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Textures; using osu.Framework.Graphics.Textures;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Users; using osu.Game.Users;
@ -153,13 +153,13 @@ namespace osu.Game.Overlays.Profile.Header
this.hoverLostAction = hoverLostAction; this.hoverLostAction = hoverLostAction;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
hoverAction(); hoverAction();
return true; return true;
} }
protected override void OnHoverLost(InputState state) => hoverLostAction(); protected override void OnHoverLost(HoverLostEvent e) => hoverLostAction();
} }
private class DrawableBadge : Container, IHasTooltip private class DrawableBadge : Container, IHasTooltip

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -137,25 +137,25 @@ namespace osu.Game.Overlays.Profile.Header
relativeText.Text = dayIndex + 1 == ranks.Length ? "Now" : $"{ranked_days - ranks[dayIndex].Key} days ago"; relativeText.Text = dayIndex + 1 == ranks.Length ? "Now" : $"{ranked_days - ranks[dayIndex].Key} days ago";
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
if (ranks?.Length > 1) if (ranks?.Length > 1)
{ {
graph.UpdateBallPosition(state.Mouse.Position.X); graph.UpdateBallPosition(e.MousePosition.X);
graph.ShowBall(); graph.ShowBall();
} }
return base.OnHover(state); return base.OnHover(e);
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
if (ranks?.Length > 1) if (ranks?.Length > 1)
graph.UpdateBallPosition(state.Mouse.Position.X); graph.UpdateBallPosition(e.MousePosition.X);
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
if (ranks?.Length > 1) if (ranks?.Length > 1)
{ {
@ -163,7 +163,7 @@ namespace osu.Game.Overlays.Profile.Header
updateRankTexts(); updateRankTexts();
} }
base.OnHoverLost(state); base.OnHoverLost(e);
} }
private class RankChartLineGraph : LineGraph private class RankChartLineGraph : LineGraph

View File

@ -386,10 +386,13 @@ namespace osu.Game.Overlays.Profile
infoTextLeft.AddText(new DrawableJoinDate(user.JoinDate), boldItalic); infoTextLeft.AddText(new DrawableJoinDate(user.JoinDate), boldItalic);
} }
if (user.LastVisit.HasValue)
{
infoTextLeft.NewLine(); infoTextLeft.NewLine();
infoTextLeft.AddText("Last seen ", lightText); infoTextLeft.AddText("Last seen ", lightText);
infoTextLeft.AddText(new DrawableDate(user.LastVisit), boldItalic); infoTextLeft.AddText(new DrawableDate(user.LastVisit.Value), boldItalic);
infoTextLeft.NewParagraph(); infoTextLeft.NewParagraph();
}
if (user.PlayStyle?.Length > 0) if (user.PlayStyle?.Length > 0)
{ {

View File

@ -6,7 +6,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -105,20 +105,20 @@ namespace osu.Game.Overlays.Profile.Sections
coloredBackground.Colour = underscoreLine.Colour = colour.Gray4; coloredBackground.Colour = underscoreLine.Colour = colour.Gray4;
} }
protected override bool OnClick(InputState state) => true; protected override bool OnClick(ClickEvent e) => true;
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
background.FadeIn(fade_duration, Easing.OutQuint); background.FadeIn(fade_duration, Easing.OutQuint);
underscoreLine.FadeOut(fade_duration, Easing.OutQuint); underscoreLine.FadeOut(fade_duration, Easing.OutQuint);
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
background.FadeOut(fade_duration, Easing.OutQuint); background.FadeOut(fade_duration, Easing.OutQuint);
underscoreLine.FadeIn(fade_duration, Easing.OutQuint); underscoreLine.FadeIn(fade_duration, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }
} }

View File

@ -8,7 +8,7 @@ using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -70,7 +70,7 @@ namespace osu.Game.Overlays.Profile.Sections.Kudosu
}; };
} }
protected override bool OnClick(InputState state) => true; protected override bool OnClick(ClickEvent e) => true;
private class CountSection : Container private class CountSection : Container
{ {

View File

@ -5,7 +5,7 @@ using OpenTK.Graphics;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Backgrounds; using osu.Game.Graphics.Backgrounds;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
@ -101,7 +101,7 @@ namespace osu.Game.Overlays.SearchableList
scrollContainer.Padding = new MarginPadding { Top = Header.Height + Filter.Height }; scrollContainer.Padding = new MarginPadding { Top = Header.Height + Filter.Height };
} }
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
GetContainingInputManager().ChangeFocus(Filter.Search); GetContainingInputManager().ChangeFocus(Filter.Search);
} }

View File

@ -16,7 +16,7 @@ using System.ComponentModel;
using osu.Game.Graphics; using osu.Game.Graphics;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using RectangleF = osu.Framework.Graphics.Primitives.RectangleF; using RectangleF = osu.Framework.Graphics.Primitives.RectangleF;
using Container = osu.Framework.Graphics.Containers.Container; using Container = osu.Framework.Graphics.Containers.Container;
@ -175,12 +175,12 @@ namespace osu.Game.Overlays.Settings.Sections.General
public override bool AcceptsFocus => true; public override bool AcceptsFocus => true;
protected override bool OnClick(InputState state) => true; protected override bool OnClick(ClickEvent e) => true;
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
if (form != null) GetContainingInputManager().ChangeFocus(form); if (form != null) GetContainingInputManager().ChangeFocus(form);
base.OnFocus(state); base.OnFocus(e);
} }
private class LoginForm : FillFlowContainer private class LoginForm : FillFlowContainer
@ -244,9 +244,9 @@ namespace osu.Game.Overlays.Settings.Sections.General
public override bool AcceptsFocus => true; public override bool AcceptsFocus => true;
protected override bool OnClick(InputState state) => true; protected override bool OnClick(ClickEvent e) => true;
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
Schedule(() => { GetContainingInputManager().ChangeFocus(string.IsNullOrEmpty(username.Text) ? username : password); }); Schedule(() => { GetContainingInputManager().ChangeFocus(string.IsNullOrEmpty(username.Text) ? username : password); });
} }

View File

@ -102,7 +102,7 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
} }
else else
resolutionDropdown.Hide(); resolutionDropdown.Hide();
}); }, true);
} }
letterboxing.BindValueChanged(isVisible => letterboxing.BindValueChanged(isVisible =>

View File

@ -5,7 +5,7 @@ using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Configuration; using osu.Game.Configuration;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -124,18 +124,18 @@ namespace osu.Game.Overlays.Settings.Sections.Input
private bool isDragging; private bool isDragging;
protected override bool OnDragStart(InputState state) protected override bool OnDragStart(DragStartEvent e)
{ {
isDragging = true; isDragging = true;
return base.OnDragStart(state); return base.OnDragStart(e);
} }
protected override bool OnDragEnd(InputState state) protected override bool OnDragEnd(DragEndEvent e)
{ {
isDragging = false; isDragging = false;
Current.TriggerChange(); Current.TriggerChange();
return base.OnDragEnd(state); return base.OnDragEnd(e);
} }
public override string TooltipText => Current.Disabled ? "Enable raw input to adjust sensitivity" : Current.Value.ToString(@"0.##x"); public override string TooltipText => Current.Disabled ? "Enable raw input to adjust sensitivity" : Current.Value.ToString(@"0.##x");

View File

@ -12,8 +12,7 @@ using osu.Framework.Graphics.Cursor;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using OpenTK; using OpenTK;
@ -168,25 +167,25 @@ namespace osu.Game.Overlays.Settings
public string TooltipText => "Revert to default"; public string TooltipText => "Revert to default";
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => true; protected override bool OnMouseDown(MouseDownEvent e) => true;
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) => true; protected override bool OnMouseUp(MouseUpEvent e) => true;
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if (bindable != null && !bindable.Disabled) if (bindable != null && !bindable.Disabled)
bindable.SetDefault(); bindable.SetDefault();
return true; return true;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
hovering = true; hovering = true;
UpdateState(); UpdateState();
return false; return false;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
hovering = false; hovering = false;
UpdateState(); UpdateState();

View File

@ -9,7 +9,7 @@ using OpenTK.Graphics;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Threading; using osu.Framework.Threading;
using osu.Game.Overlays.Toolbar; using osu.Game.Overlays.Toolbar;
@ -55,25 +55,25 @@ namespace osu.Game.Overlays.Settings
private ScheduledDelegate expandEvent; private ScheduledDelegate expandEvent;
private ExpandedState state; private ExpandedState state;
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
queueExpandIfHovering(); queueExpandIfHovering();
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
expandEvent?.Cancel(); expandEvent?.Cancel();
lastHoveredButton = null; lastHoveredButton = null;
State = ExpandedState.Contracted; State = ExpandedState.Contracted;
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
queueExpandIfHovering(); queueExpandIfHovering();
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
private class SidebarScrollContainer : ScrollContainer private class SidebarScrollContainer : ScrollContainer

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -109,22 +109,22 @@ namespace osu.Game.Overlays.Settings
selectionIndicator.Colour = colours.Yellow; selectionIndicator.Colour = colours.Yellow;
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
Action?.Invoke(section); Action?.Invoke(section);
return base.OnClick(state); return base.OnClick(e);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
Background.FadeTo(0.4f, 200); Background.FadeTo(0.4f, 200);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
Background.FadeTo(0, 200); Background.FadeTo(0, 200);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
} }
} }

View File

@ -11,7 +11,7 @@ using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
using osu.Game.Overlays.Settings; using osu.Game.Overlays.Settings;
@ -177,10 +177,10 @@ namespace osu.Game.Overlays
public override bool AcceptsFocus => true; public override bool AcceptsFocus => true;
protected override void OnFocus(InputState state) protected override void OnFocus(FocusEvent e)
{ {
GetContainingInputManager().ChangeFocus(searchTextBox); GetContainingInputManager().ChangeFocus(searchTextBox);
base.OnFocus(state); base.OnFocus(e);
} }
protected override void UpdateAfterChildren() protected override void UpdateAfterChildren()

View File

@ -6,7 +6,7 @@ using OpenTK.Graphics;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Users; using osu.Game.Users;
namespace osu.Game.Overlays.Social namespace osu.Game.Overlays.Social
@ -35,20 +35,20 @@ namespace osu.Game.Overlays.Social
Colour = Color4.Black.Opacity(0.3f), Colour = Color4.Black.Opacity(0.3f),
}; };
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
Content.TweenEdgeEffectTo(edgeEffectHovered, hover_transition_time, Easing.OutQuint); Content.TweenEdgeEffectTo(edgeEffectHovered, hover_transition_time, Easing.OutQuint);
Content.MoveToY(-4, hover_transition_time, Easing.OutQuint); Content.MoveToY(-4, hover_transition_time, Easing.OutQuint);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
Content.TweenEdgeEffectTo(edgeEffectNormal, hover_transition_time, Easing.OutQuint); Content.TweenEdgeEffectTo(edgeEffectNormal, hover_transition_time, Easing.OutQuint);
Content.MoveToY(0, hover_transition_time, Easing.OutQuint); Content.MoveToY(0, hover_transition_time, Easing.OutQuint);
base.OnHoverLost(state); base.OnHoverLost(e);
} }
protected override void LoadComplete() protected override void LoadComplete()

View File

@ -11,7 +11,7 @@ using OpenTK;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
namespace osu.Game.Overlays.Toolbar namespace osu.Game.Overlays.Toolbar
{ {
@ -121,14 +121,14 @@ namespace osu.Game.Overlays.Toolbar
}; };
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
solidBackground.FadeTo(alpha_hovering, transition_time, Easing.OutQuint); solidBackground.FadeTo(alpha_hovering, transition_time, Easing.OutQuint);
gradientBackground.FadeIn(transition_time, Easing.OutQuint); gradientBackground.FadeIn(transition_time, Easing.OutQuint);
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
solidBackground.FadeTo(alpha_normal, transition_time, Easing.OutQuint); solidBackground.FadeTo(alpha_normal, transition_time, Easing.OutQuint);
gradientBackground.FadeOut(transition_time, Easing.OutQuint); gradientBackground.FadeOut(transition_time, Easing.OutQuint);

View File

@ -11,8 +11,7 @@ using osu.Game.Graphics.Sprites;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -145,22 +144,22 @@ namespace osu.Game.Overlays.Toolbar
}; };
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => true; protected override bool OnMouseDown(MouseDownEvent e) => true;
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
HoverBackground.FlashColour(Color4.White.Opacity(100), 500, Easing.OutQuint); HoverBackground.FlashColour(Color4.White.Opacity(100), 500, Easing.OutQuint);
return base.OnClick(state); return base.OnClick(e);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
HoverBackground.FadeIn(200); HoverBackground.FadeIn(200);
tooltipContainer.FadeIn(100); tooltipContainer.FadeIn(100);
return base.OnHover(state); return base.OnHover(e);
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
HoverBackground.FadeOut(200); HoverBackground.FadeOut(200);
tooltipContainer.FadeOut(100); tooltipContainer.FadeOut(100);

View File

@ -11,8 +11,7 @@ using OpenTK.Input;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Rulesets; using osu.Game.Rulesets;
namespace osu.Game.Overlays.Toolbar namespace osu.Game.Overlays.Toolbar
@ -86,13 +85,13 @@ namespace osu.Game.Overlays.Toolbar
ruleset.BindTo(parentRuleset); ruleset.BindTo(parentRuleset);
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
base.OnKeyDown(state, args); base.OnKeyDown(e);
if (state.Keyboard.ControlPressed && !args.Repeat && args.Key >= Key.Number1 && args.Key <= Key.Number9) if (e.ControlPressed && !e.Repeat && e.Key >= Key.Number1 && e.Key <= Key.Number9)
{ {
int requested = args.Key - Key.Number1; int requested = e.Key - Key.Number1;
RulesetInfo found = rulesets.AvailableRulesets.Skip(requested).FirstOrDefault(); RulesetInfo found = rulesets.AvailableRulesets.Skip(requested).FirstOrDefault();
if (found != null) if (found != null)

View File

@ -9,7 +9,7 @@ using osu.Framework.Graphics.Colour;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -63,18 +63,18 @@ namespace osu.Game.Overlays.Volume
Current.TriggerChange(); Current.TriggerChange();
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
this.TransformTo<MuteButton, SRGBColour>("BorderColour", hoveredColour, 500, Easing.OutQuint); this.TransformTo<MuteButton, SRGBColour>("BorderColour", hoveredColour, 500, Easing.OutQuint);
return false; return false;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
this.TransformTo<MuteButton, SRGBColour>("BorderColour", unhoveredColour, 500, Easing.OutQuint); this.TransformTo<MuteButton, SRGBColour>("BorderColour", unhoveredColour, 500, Easing.OutQuint);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
Current.Value = !Current.Value; Current.Value = !Current.Value;
return true; return true;

View File

@ -11,7 +11,7 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Effects; using osu.Framework.Graphics.Effects;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.MathUtils; using osu.Framework.MathUtils;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -239,21 +239,21 @@ namespace osu.Game.Overlays.Volume
adjustAccumulator = 0; adjustAccumulator = 0;
} }
protected override bool OnScroll(InputState state) protected override bool OnScroll(ScrollEvent e)
{ {
adjust(state.Mouse.ScrollDelta.Y, state.Mouse.HasPreciseScroll); adjust(e.ScrollDelta.Y, e.IsPrecise);
return true; return true;
} }
private const float transition_length = 500; private const float transition_length = 500;
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
this.ScaleTo(1.04f, transition_length, Easing.OutExpo); this.ScaleTo(1.04f, transition_length, Easing.OutExpo);
return false; return false;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
this.ScaleTo(1f, transition_length, Easing.OutExpo); this.ScaleTo(1f, transition_length, Easing.OutExpo);
} }

View File

@ -9,7 +9,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Colour; using osu.Framework.Graphics.Colour;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Threading; using osu.Framework.Threading;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Input.Bindings; using osu.Game.Input.Bindings;
@ -143,23 +143,23 @@ namespace osu.Game.Overlays
this.FadeOut(100); this.FadeOut(100);
} }
protected override bool OnMouseMove(InputState state) protected override bool OnMouseMove(MouseMoveEvent e)
{ {
// keep the scheduled event correctly timed as long as we have movement. // keep the scheduled event correctly timed as long as we have movement.
schedulePopOut(); schedulePopOut();
return base.OnMouseMove(state); return base.OnMouseMove(e);
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
schedulePopOut(); schedulePopOut();
return true; return true;
} }
protected override void OnHoverLost(InputState state) protected override void OnHoverLost(HoverLostEvent e)
{ {
schedulePopOut(); schedulePopOut();
base.OnHoverLost(state); base.OnHoverLost(e);
} }
private void schedulePopOut() private void schedulePopOut()

View File

@ -5,7 +5,7 @@ using System;
using osu.Framework; using osu.Framework;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Primitives;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States; using osu.Framework.Input.States;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Objects.Drawables;
@ -37,7 +37,7 @@ namespace osu.Game.Rulesets.Edit
/// <summary> /// <summary>
/// Invoked when this <see cref="HitObjectMask"/> has requested drag. /// Invoked when this <see cref="HitObjectMask"/> has requested drag.
/// </summary> /// </summary>
public event Action<HitObjectMask, InputState> DragRequested; public event Action<HitObjectMask, Vector2, InputState> DragRequested;
/// <summary> /// <summary>
/// The <see cref="DrawableHitObject"/> which this <see cref="HitObjectMask"/> applies to. /// The <see cref="DrawableHitObject"/> which this <see cref="HitObjectMask"/> applies to.
@ -96,36 +96,36 @@ namespace osu.Game.Rulesets.Edit
private bool selectionRequested; private bool selectionRequested;
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
selectionRequested = false; selectionRequested = false;
if (State == SelectionState.NotSelected) if (State == SelectionState.NotSelected)
{ {
SelectionRequested?.Invoke(this, state); SelectionRequested?.Invoke(this, e.CurrentState);
selectionRequested = true; selectionRequested = true;
} }
return IsSelected; return IsSelected;
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if (State == SelectionState.Selected && !selectionRequested) if (State == SelectionState.Selected && !selectionRequested)
{ {
selectionRequested = true; selectionRequested = true;
SelectionRequested?.Invoke(this, state); SelectionRequested?.Invoke(this, e.CurrentState);
return true; return true;
} }
return base.OnClick(state); return base.OnClick(e);
} }
protected override bool OnDragStart(InputState state) => true; protected override bool OnDragStart(DragStartEvent e) => true;
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
DragRequested?.Invoke(this, state); DragRequested?.Invoke(this, e.Delta, e.CurrentState);
return true; return true;
} }

View File

@ -19,7 +19,7 @@ namespace osu.Game.Rulesets.Judgements
/// <summary> /// <summary>
/// A drawable object which visualises the hit result of a <see cref="Judgements.Judgement"/>. /// A drawable object which visualises the hit result of a <see cref="Judgements.Judgement"/>.
/// </summary> /// </summary>
public class DrawableJudgement : Container public class DrawableJudgement : CompositeDrawable
{ {
private const float judgement_size = 80; private const float judgement_size = 80;
@ -29,6 +29,7 @@ namespace osu.Game.Rulesets.Judgements
public readonly DrawableHitObject JudgedObject; public readonly DrawableHitObject JudgedObject;
protected Container JudgementBody;
protected SpriteText JudgementText; protected SpriteText JudgementText;
/// <summary> /// <summary>
@ -49,6 +50,11 @@ namespace osu.Game.Rulesets.Judgements
{ {
this.colours = colours; this.colours = colours;
InternalChild = JudgementBody = new Container
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
RelativeSizeAxes = Axes.Both,
Child = new SkinnableDrawable($"Play/{Result.Type}", _ => JudgementText = new OsuSpriteText Child = new SkinnableDrawable($"Play/{Result.Type}", _ => JudgementText = new OsuSpriteText
{ {
Text = Result.Type.GetDescription().ToUpperInvariant(), Text = Result.Type.GetDescription().ToUpperInvariant(),
@ -56,7 +62,8 @@ namespace osu.Game.Rulesets.Judgements
Colour = judgementColour(Result.Type), Colour = judgementColour(Result.Type),
Scale = new Vector2(0.85f, 1), Scale = new Vector2(0.85f, 1),
TextSize = 12 TextSize = 12
}, restrictSize: false); }, restrictSize: false)
};
} }
protected override void LoadComplete() protected override void LoadComplete()
@ -65,24 +72,22 @@ namespace osu.Game.Rulesets.Judgements
this.FadeInFromZero(100, Easing.OutQuint); this.FadeInFromZero(100, Easing.OutQuint);
var origScale = Scale;
switch (Result.Type) switch (Result.Type)
{ {
case HitResult.None: case HitResult.None:
break; break;
case HitResult.Miss: case HitResult.Miss:
this.ScaleTo(origScale * 1.6f); JudgementBody.ScaleTo(1.6f);
this.ScaleTo(origScale, 100, Easing.In); JudgementBody.ScaleTo(1, 100, Easing.In);
this.MoveToOffset(new Vector2(0, 100), 800, Easing.InQuint); JudgementBody.MoveToOffset(new Vector2(0, 100), 800, Easing.InQuint);
this.RotateTo(40, 800, Easing.InQuint); JudgementBody.RotateTo(40, 800, Easing.InQuint);
this.Delay(600).FadeOut(200); this.Delay(600).FadeOut(200);
break; break;
default: default:
this.ScaleTo(origScale * 0.9f); JudgementBody.ScaleTo(0.9f);
this.ScaleTo(origScale, 500, Easing.OutElastic); JudgementBody.ScaleTo(1, 500, Easing.OutElastic);
this.Delay(100).FadeOut(400); this.Delay(100).FadeOut(400);
break; break;
@ -105,9 +110,9 @@ namespace osu.Game.Rulesets.Judgements
return colours.Yellow; return colours.Yellow;
case HitResult.Miss: case HitResult.Miss:
return colours.Red; return colours.Red;
} default:
return Color4.White; return Color4.White;
} }
} }
}
} }

View File

@ -8,7 +8,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input; using osu.Framework.Input;
using osu.Framework.Input.Bindings; using osu.Framework.Input.Bindings;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.StateChanges.Events; using osu.Framework.Input.StateChanges.Events;
using osu.Framework.Input.States; using osu.Framework.Input.States;
using osu.Framework.Timing; using osu.Framework.Timing;
@ -18,6 +18,9 @@ using osu.Game.Input.Handlers;
using osu.Game.Screens.Play; using osu.Game.Screens.Play;
using OpenTK.Input; using OpenTK.Input;
using static osu.Game.Input.Handlers.ReplayInputHandler; using static osu.Game.Input.Handlers.ReplayInputHandler;
using JoystickState = osu.Framework.Input.States.JoystickState;
using KeyboardState = osu.Framework.Input.States.KeyboardState;
using MouseState = osu.Framework.Input.States.MouseState;
namespace osu.Game.Rulesets.UI namespace osu.Game.Rulesets.UI
{ {
@ -35,13 +38,7 @@ namespace osu.Game.Rulesets.UI
protected override InputState CreateInitialState() protected override InputState CreateInitialState()
{ {
var state = base.CreateInitialState(); var state = base.CreateInitialState();
return new RulesetInputManagerInputState<T> return new RulesetInputManagerInputState<T>(state.Mouse, state.Keyboard, state.Joystick);
{
Mouse = state.Mouse,
Keyboard = state.Keyboard,
Joystick = state.Joystick,
LastReplayState = null
};
} }
protected readonly KeyBindingContainer<T> KeyBindingContainer; protected readonly KeyBindingContainer<T> KeyBindingContainer;
@ -76,12 +73,10 @@ namespace osu.Game.Rulesets.UI
#region IHasReplayHandler #region IHasReplayHandler
private ReplayInputHandler replayInputHandler; private ReplayInputHandler replayInputHandler;
public ReplayInputHandler ReplayInputHandler public ReplayInputHandler ReplayInputHandler
{ {
get get => replayInputHandler;
{
return replayInputHandler;
}
set set
{ {
if (replayInputHandler != null) RemoveHandler(replayInputHandler); if (replayInputHandler != null) RemoveHandler(replayInputHandler);
@ -211,16 +206,20 @@ namespace osu.Game.Rulesets.UI
mouseDisabled = config.GetBindable<bool>(OsuSetting.MouseDisableButtons); mouseDisabled = config.GetBindable<bool>(OsuSetting.MouseDisableButtons);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool Handle(UIEvent e)
{ {
if (mouseDisabled.Value && (args.Button == MouseButton.Left || args.Button == MouseButton.Right)) return false; switch (e)
return base.OnMouseDown(state, args); {
case MouseDownEvent mouseDown when mouseDown.Button == MouseButton.Left || mouseDown.Button == MouseButton.Right:
if (mouseDisabled.Value)
return false;
break;
case MouseUpEvent mouseUp:
if (!CurrentState.Mouse.IsPressed(mouseUp.Button))
return false;
break;
} }
return base.Handle(e);
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args)
{
if (!CurrentState.Mouse.IsPressed(args.Button)) return false;
return base.OnMouseUp(state, args);
} }
#endregion #endregion
@ -275,5 +274,10 @@ namespace osu.Game.Rulesets.UI
where T : struct where T : struct
{ {
public ReplayState<T> LastReplayState; public ReplayState<T> LastReplayState;
public RulesetInputManagerInputState(MouseState mouse = null, KeyboardState keyboard = null, JoystickState joystick = null)
: base(mouse, keyboard, joystick)
{
}
} }
} }

View File

@ -5,8 +5,7 @@ using System;
using System.Threading; using System.Threading;
using osu.Framework.Screens; using osu.Framework.Screens;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using OpenTK; using OpenTK;
namespace osu.Game.Screens namespace osu.Game.Screens
@ -21,7 +20,7 @@ namespace osu.Game.Screens
private const float transition_length = 500; private const float transition_length = 500;
private const float x_movement_amount = 50; private const float x_movement_amount = 50;
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
//we don't want to handle escape key. //we don't want to handle escape key.
return false; return false;

View File

@ -8,7 +8,7 @@ using osu.Framework.Extensions.IEnumerableExtensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Timing; using osu.Framework.Timing;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
@ -138,13 +138,13 @@ namespace osu.Game.Screens.Edit.Components
textBold.Colour = hoveredColour = colours.Yellow; textBold.Colour = hoveredColour = colours.Yellow;
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
updateState(); updateState();
return true; return true;
} }
protected override void OnHoverLost(InputState state) => updateState(); protected override void OnHoverLost(HoverLostEvent e) => updateState();
protected override void OnActivated() => updateState(); protected override void OnActivated() => updateState();
protected override void OnDeactivated() => updateState(); protected override void OnDeactivated() => updateState();

View File

@ -6,8 +6,7 @@ using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Framework.Timing; using osu.Framework.Timing;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -30,17 +29,17 @@ namespace osu.Game.Screens.Edit.Components.Timelines.Summary.Parts
Add(marker = new MarkerVisualisation()); Add(marker = new MarkerVisualisation());
} }
protected override bool OnDragStart(InputState state) => true; protected override bool OnDragStart(DragStartEvent e) => true;
protected override bool OnDragEnd(InputState state) => true; protected override bool OnDragEnd(DragEndEvent e) => true;
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
seekToPosition(state.Mouse.NativeState.Position); seekToPosition(e.ScreenSpaceMousePosition);
return true; return true;
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
seekToPosition(state.Mouse.NativeState.Position); seekToPosition(e.ScreenSpaceMousePosition);
return true; return true;
} }

View File

@ -12,7 +12,7 @@ using osu.Game.Screens.Edit.Menus;
using osu.Game.Screens.Edit.Components.Timelines.Summary; using osu.Game.Screens.Edit.Components.Timelines.Summary;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Framework.Platform; using osu.Framework.Platform;
using osu.Framework.Timing; using osu.Framework.Timing;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -182,9 +182,9 @@ namespace osu.Game.Screens.Edit
LoadComponentAsync(currentScreen, screenContainer.Add); LoadComponentAsync(currentScreen, screenContainer.Add);
} }
protected override bool OnScroll(InputState state) protected override bool OnScroll(ScrollEvent e)
{ {
if (state.Mouse.ScrollDelta.X + state.Mouse.ScrollDelta.Y > 0) if (e.ScrollDelta.X + e.ScrollDelta.Y > 0)
clock.SeekBackward(!clock.IsRunning); clock.SeekBackward(!clock.IsRunning);
else else
clock.SeekForward(!clock.IsRunning); clock.SeekForward(!clock.IsRunning);

View File

@ -11,7 +11,7 @@ using osu.Game.Graphics.UserInterface;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Configuration; using osu.Framework.Configuration;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Screens.Edit.Screens; using osu.Game.Screens.Edit.Screens;
namespace osu.Game.Screens.Edit.Menus namespace osu.Game.Screens.Edit.Menus
@ -171,18 +171,18 @@ namespace osu.Game.Screens.Edit.Menus
{ {
} }
protected override bool OnHover(InputState state) protected override bool OnHover(HoverEvent e)
{ {
if (Item is EditorMenuItemSpacer) if (Item is EditorMenuItemSpacer)
return true; return true;
return base.OnHover(state); return base.OnHover(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if (Item is EditorMenuItemSpacer) if (Item is EditorMenuItemSpacer)
return true; return true;
return base.OnClick(state); return base.OnClick(e);
} }
} }
} }

View File

@ -12,8 +12,7 @@ using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.UserInterface; using osu.Framework.Graphics.UserInterface;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
using OpenTK; using OpenTK;
@ -233,9 +232,9 @@ namespace osu.Game.Screens.Edit.Screens.Compose
public override bool HandleNonPositionalInput => IsHovered && !CurrentNumber.Disabled; public override bool HandleNonPositionalInput => IsHovered && !CurrentNumber.Disabled;
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(KeyDownEvent e)
{ {
switch (args.Key) switch (e.Key)
{ {
case Key.Right: case Key.Right:
beatDivisor.Next(); beatDivisor.Next();
@ -250,34 +249,34 @@ namespace osu.Game.Screens.Edit.Screens.Compose
} }
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
marker.Active = true; marker.Active = true;
return base.OnMouseDown(state, args); return base.OnMouseDown(e);
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
marker.Active = false; marker.Active = false;
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
handleMouseInput(state); handleMouseInput(e.ScreenSpaceMousePosition);
return true; return true;
} }
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
handleMouseInput(state); handleMouseInput(e.ScreenSpaceMousePosition);
return true; return true;
} }
private void handleMouseInput(InputState state) private void handleMouseInput(Vector2 screenSpaceMousePosition)
{ {
// copied from SliderBar so we can do custom spacing logic. // copied from SliderBar so we can do custom spacing logic.
var xPosition = (ToLocalSpace(state?.Mouse.NativeState.Position ?? Vector2.Zero).X - RangePadding) / UsableWidth; var xPosition = (ToLocalSpace(screenSpaceMousePosition).X - RangePadding) / UsableWidth;
CurrentNumber.Value = availableDivisors.OrderBy(d => Math.Abs(getMappedPosition(d) - xPosition)).First(); CurrentNumber.Value = availableDivisors.OrderBy(d => Math.Abs(getMappedPosition(d) - xPosition)).First();
OnUserChange(); OnUserChange();

View File

@ -7,7 +7,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Primitives;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Rulesets.Edit; using osu.Game.Rulesets.Edit;
using OpenTK.Graphics; using OpenTK.Graphics;
@ -56,16 +56,16 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
}; };
} }
protected override bool OnDragStart(InputState state) protected override bool OnDragStart(DragStartEvent e)
{ {
this.FadeIn(250, Easing.OutQuint); this.FadeIn(250, Easing.OutQuint);
return true; return true;
} }
protected override bool OnDrag(InputState state) protected override bool OnDrag(DragEvent e)
{ {
var dragPosition = state.Mouse.NativeState.Position; var dragPosition = e.ScreenSpaceMousePosition;
var dragStartPosition = state.Mouse.NativeState.PositionMouseDown ?? dragPosition; var dragStartPosition = e.ScreenSpaceMouseDownPosition;
var dragQuad = new Quad(dragStartPosition.X, dragStartPosition.Y, dragPosition.X - dragStartPosition.X, dragPosition.Y - dragStartPosition.Y); var dragQuad = new Quad(dragStartPosition.X, dragStartPosition.Y, dragPosition.X - dragStartPosition.X, dragPosition.Y - dragStartPosition.Y);
@ -82,7 +82,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
return true; return true;
} }
protected override bool OnDragEnd(InputState state) protected override bool OnDragEnd(DragEndEvent e)
{ {
this.FadeOut(250, Easing.OutQuint); this.FadeOut(250, Easing.OutQuint);
DragEnd?.Invoke(); DragEnd?.Invoke();

View File

@ -4,8 +4,7 @@
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Game.Rulesets.Edit; using osu.Game.Rulesets.Edit;
using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Objects.Drawables;
@ -52,7 +51,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
addMask(obj); addMask(obj);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
maskContainer.DeselectAll(); maskContainer.DeselectAll();
return true; return true;

View File

@ -8,6 +8,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Input.States; using osu.Framework.Input.States;
using osu.Game.Rulesets.Edit; using osu.Game.Rulesets.Edit;
using OpenTK;
using RectangleF = osu.Framework.Graphics.Primitives.RectangleF; using RectangleF = osu.Framework.Graphics.Primitives.RectangleF;
namespace osu.Game.Screens.Edit.Screens.Compose.Layers namespace osu.Game.Screens.Edit.Screens.Compose.Layers
@ -32,7 +33,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
/// <summary> /// <summary>
/// Invoked when any <see cref="HitObjectMask"/> requests drag. /// Invoked when any <see cref="HitObjectMask"/> requests drag.
/// </summary> /// </summary>
public event Action<HitObjectMask, InputState> MaskDragRequested; public event Action<HitObjectMask, Vector2, InputState> MaskDragRequested;
private IEnumerable<HitObjectMask> aliveMasks => AliveInternalChildren.Cast<HitObjectMask>(); private IEnumerable<HitObjectMask> aliveMasks => AliveInternalChildren.Cast<HitObjectMask>();
@ -103,7 +104,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
} }
private void onSelectionRequested(HitObjectMask mask, InputState state) => MaskSelectionRequested?.Invoke(mask, state); private void onSelectionRequested(HitObjectMask mask, InputState state) => MaskSelectionRequested?.Invoke(mask, state);
private void onDragRequested(HitObjectMask mask, InputState state) => MaskDragRequested?.Invoke(mask, state); private void onDragRequested(HitObjectMask mask, Vector2 delta, InputState state) => MaskDragRequested?.Invoke(mask, delta, state);
protected override int Compare(Drawable x, Drawable y) protected override int Compare(Drawable x, Drawable y)
{ {

View File

@ -54,7 +54,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
#region User Input Handling #region User Input Handling
public void HandleDrag(HitObjectMask m, InputState state) public void HandleDrag(HitObjectMask m, Vector2 delta, InputState state)
{ {
// Todo: Various forms of snapping // Todo: Various forms of snapping
@ -63,7 +63,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Layers
switch (mask.HitObject.HitObject) switch (mask.HitObject.HitObject)
{ {
case IHasEditablePosition editablePosition: case IHasEditablePosition editablePosition:
editablePosition.OffsetPosition(state.Mouse.Delta); editablePosition.OffsetPosition(delta);
break; break;
} }
} }

View File

@ -10,7 +10,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.States; using osu.Framework.Input.Events;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -99,7 +99,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.RadioButtons
bubble.Colour = button.Selected ? selectedBubbleColour : defaultBubbleColour; bubble.Colour = button.Selected ? selectedBubbleColour : defaultBubbleColour;
} }
protected override bool OnClick(InputState state) protected override bool OnClick(ClickEvent e)
{ {
if (button.Selected) if (button.Selected)
return true; return true;
@ -109,7 +109,7 @@ namespace osu.Game.Screens.Edit.Screens.Compose.RadioButtons
button.Selected.Value = true; button.Selected.Value = true;
return base.OnClick(state); return base.OnClick(e);
} }
protected override SpriteText CreateText() => new OsuSpriteText protected override SpriteText CreateText() => new OsuSpriteText

View File

@ -7,8 +7,7 @@ using osu.Framework.Configuration;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Audio; using osu.Framework.Graphics.Audio;
using osu.Framework.Input.EventArgs; using osu.Framework.Input.Events;
using osu.Framework.Input.States;
using osu.Framework.Timing; using osu.Framework.Timing;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics; using osu.Game.Graphics;
@ -133,9 +132,9 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Timeline
ScrollTo((float)(adjustableClock.CurrentTime / track.Length) * Content.DrawWidth, false); ScrollTo((float)(adjustableClock.CurrentTime / track.Length) * Content.DrawWidth, false);
} }
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) protected override bool OnMouseDown(MouseDownEvent e)
{ {
if (base.OnMouseDown(state, args)) if (base.OnMouseDown(e))
{ {
beginUserDrag(); beginUserDrag();
return true; return true;
@ -144,10 +143,10 @@ namespace osu.Game.Screens.Edit.Screens.Compose.Timeline
return false; return false;
} }
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) protected override bool OnMouseUp(MouseUpEvent e)
{ {
endUserDrag(); endUserDrag();
return base.OnMouseUp(state, args); return base.OnMouseUp(e);
} }
private void beginUserDrag() private void beginUserDrag()

Some files were not shown because too many files have changed in this diff Show More