1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 15:27:26 +08:00

Merge branch 'master' into better-multimod-animation

This commit is contained in:
jorolf 2017-05-28 14:39:04 +02:00 committed by GitHub
commit 9a4abcc199
17 changed files with 57 additions and 41 deletions

@ -1 +1 @@
Subproject commit 8baad1b9484b9f35724e2f965c18cfe710907d80 Subproject commit 0b9053ec3d39b486165992374752b280c5eeef06

View File

@ -80,7 +80,7 @@ namespace osu.Desktop.VisualTests.Tests
private void triggerKeyDown(Column column) private void triggerKeyDown(Column column)
{ {
column.TriggerKeyDown(new InputState(), new KeyDownEventArgs column.TriggerOnKeyDown(new InputState(), new KeyDownEventArgs
{ {
Key = column.Key, Key = column.Key,
Repeat = false Repeat = false
@ -89,7 +89,7 @@ namespace osu.Desktop.VisualTests.Tests
private void triggerKeyUp(Column column) private void triggerKeyUp(Column column)
{ {
column.TriggerKeyUp(new InputState(), new KeyUpEventArgs column.TriggerOnKeyUp(new InputState(), new KeyUpEventArgs
{ {
Key = column.Key Key = column.Key
}); });

View File

@ -3,6 +3,7 @@
using OpenTK.Graphics; using OpenTK.Graphics;
using OpenTK.Input; using OpenTK.Input;
using osu.Framework.Allocation;
using osu.Framework.Input; using osu.Framework.Input;
using System; using System;
using System.Linq; using System.Linq;
@ -23,11 +24,19 @@ namespace osu.Game.Graphics.UserInterface
set set
{ {
focus = value; focus = value;
if (!focus) if (!focus && HasFocus)
TriggerFocusLost(); inputManager.ChangeFocus(null);
} }
} }
private InputManager inputManager;
[BackgroundDependencyLoader]
private void load(UserInputManager inputManager)
{
this.inputManager = inputManager;
}
protected override bool OnFocus(InputState state) protected override bool OnFocus(InputState state)
{ {
var result = base.OnFocus(state); var result = base.OnFocus(state);

View File

@ -74,7 +74,7 @@ namespace osu.Game.Graphics.UserInterface.Volume
return; return;
} }
volumeMeterMaster.TriggerWheel(state); volumeMeterMaster.TriggerOnWheel(state);
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]

View File

@ -165,7 +165,7 @@ namespace osu.Game.Overlays
protected override bool OnFocus(InputState state) protected override bool OnFocus(InputState state)
{ {
//this is necessary as inputTextBox is masked away and therefore can't get focus :( //this is necessary as inputTextBox is masked away and therefore can't get focus :(
inputTextBox.TriggerFocus(); InputManager.ChangeFocus(inputTextBox);
return false; return false;
} }

View File

@ -71,7 +71,7 @@ namespace osu.Game.Overlays.Dialog
private void pressButtonAtIndex(int index) private void pressButtonAtIndex(int index)
{ {
if (index < Buttons.Count()) if (index < Buttons.Count())
Buttons.Skip(index).First().TriggerClick(); Buttons.Skip(index).First().TriggerOnClick();
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) protected override bool OnKeyDown(InputState state, KeyDownEventArgs args)
@ -80,7 +80,7 @@ namespace osu.Game.Overlays.Dialog
if (args.Key == Key.Enter) if (args.Key == Key.Enter)
{ {
Buttons.OfType<PopupDialogOkButton>().FirstOrDefault()?.TriggerClick(); Buttons.OfType<PopupDialogOkButton>().FirstOrDefault()?.TriggerOnClick();
return true; return true;
} }

View File

@ -189,7 +189,7 @@ namespace osu.Game.Overlays
protected override bool OnFocus(InputState state) protected override bool OnFocus(InputState state)
{ {
filter.Search.TriggerFocus(); InputManager.ChangeFocus(filter.Search);
return false; return false;
} }

View File

@ -66,7 +66,7 @@ namespace osu.Game.Overlays
settingsSection.Bounding = true; settingsSection.Bounding = true;
FadeIn(transition_time, EasingTypes.OutQuint); FadeIn(transition_time, EasingTypes.OutQuint);
settingsSection.TriggerFocus(); InputManager.ChangeFocus(settingsSection);
} }
protected override void PopOut() protected override void PopOut()

View File

@ -17,6 +17,7 @@ using osu.Game.Graphics;
using OpenTK; using OpenTK;
using OpenTK.Graphics; using OpenTK.Graphics;
using osu.Framework.Extensions; using osu.Framework.Extensions;
using osu.Framework.Input;
namespace osu.Game.Overlays.Music namespace osu.Game.Overlays.Music
{ {
@ -35,10 +36,12 @@ namespace osu.Game.Overlays.Music
private readonly Bindable<WorkingBeatmap> beatmapBacking = new Bindable<WorkingBeatmap>(); private readonly Bindable<WorkingBeatmap> beatmapBacking = new Bindable<WorkingBeatmap>();
public IEnumerable<BeatmapSetInfo> BeatmapSets; public IEnumerable<BeatmapSetInfo> BeatmapSets;
private InputManager inputManager;
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OsuGameBase game, BeatmapDatabase beatmaps, OsuColour colours) private void load(OsuGameBase game, BeatmapDatabase beatmaps, OsuColour colours, UserInputManager inputManager)
{ {
this.inputManager = inputManager;
this.beatmaps = beatmaps; this.beatmaps = beatmaps;
trackManager = game.Audio.Track; trackManager = game.Audio.Track;
@ -100,7 +103,7 @@ namespace osu.Game.Overlays.Music
protected override void PopIn() protected override void PopIn()
{ {
filter.Search.HoldFocus = true; filter.Search.HoldFocus = true;
Schedule(() => filter.Search.TriggerFocus()); Schedule(() => inputManager.ChangeFocus(filter.Search));
ResizeTo(new Vector2(1, playlist_height), transition_duration, EasingTypes.OutQuint); ResizeTo(new Vector2(1, playlist_height), transition_duration, EasingTypes.OutQuint);
FadeIn(transition_duration, EasingTypes.OutQuint); FadeIn(transition_duration, EasingTypes.OutQuint);

View File

@ -51,9 +51,12 @@ namespace osu.Game.Overlays.Settings.Sections.General
Spacing = new Vector2(0f, 5f); Spacing = new Vector2(0f, 5f);
} }
private InputManager inputManager;
[BackgroundDependencyLoader(permitNulls: true)] [BackgroundDependencyLoader(permitNulls: true)]
private void load(OsuColour colours, APIAccess api) private void load(OsuColour colours, APIAccess api, UserInputManager inputManager)
{ {
this.inputManager = inputManager;
this.colours = colours; this.colours = colours;
api?.Register(this); api?.Register(this);
} }
@ -160,12 +163,12 @@ namespace osu.Game.Overlays.Settings.Sections.General
break; break;
} }
form?.TriggerFocus(); if (form != null) inputManager.ChangeFocus(form);
} }
protected override bool OnFocus(InputState state) protected override bool OnFocus(InputState state)
{ {
form?.TriggerFocus(); if (form != null) inputManager.ChangeFocus(form);
return base.OnFocus(state); return base.OnFocus(state);
} }
@ -174,6 +177,7 @@ namespace osu.Game.Overlays.Settings.Sections.General
private TextBox username; private TextBox username;
private TextBox password; private TextBox password;
private APIAccess api; private APIAccess api;
private InputManager inputManager;
private void performLogin() private void performLogin()
{ {
@ -182,8 +186,9 @@ namespace osu.Game.Overlays.Settings.Sections.General
} }
[BackgroundDependencyLoader(permitNulls: true)] [BackgroundDependencyLoader(permitNulls: true)]
private void load(APIAccess api, OsuConfigManager config) private void load(APIAccess api, OsuConfigManager config, UserInputManager inputManager)
{ {
this.inputManager = inputManager;
this.api = api; this.api = api;
Direction = FillDirection.Vertical; Direction = FillDirection.Vertical;
Spacing = new Vector2(0, 5); Spacing = new Vector2(0, 5);
@ -232,14 +237,7 @@ namespace osu.Game.Overlays.Settings.Sections.General
protected override bool OnFocus(InputState state) protected override bool OnFocus(InputState state)
{ {
Schedule(() => Schedule(() => { inputManager.ChangeFocus(string.IsNullOrEmpty(username.Text) ? username : password); });
{
if (string.IsNullOrEmpty(username.Text))
username.TriggerFocus();
else
password.TriggerFocus();
});
return base.OnFocus(state); return base.OnFocus(state);
} }
} }

View File

@ -134,12 +134,13 @@ namespace osu.Game.Overlays
FadeTo(0, TRANSITION_LENGTH / 2); FadeTo(0, TRANSITION_LENGTH / 2);
searchTextBox.HoldFocus = false; searchTextBox.HoldFocus = false;
searchTextBox.TriggerFocusLost(); if (searchTextBox.HasFocus)
InputManager.ChangeFocus(null);
} }
protected override bool OnFocus(InputState state) protected override bool OnFocus(InputState state)
{ {
searchTextBox.TriggerFocus(state); InputManager.ChangeFocus(searchTextBox);
return false; return false;
} }

View File

@ -135,7 +135,7 @@ namespace osu.Game.Screens.Menu
switch (args.Key) switch (args.Key)
{ {
case Key.Space: case Key.Space:
osuLogo.TriggerClick(state); osuLogo.TriggerOnClick(state);
return true; return true;
case Key.Escape: case Key.Escape:
switch (State) switch (State)
@ -144,7 +144,7 @@ namespace osu.Game.Screens.Menu
State = MenuState.Initial; State = MenuState.Initial;
return true; return true;
case MenuState.Play: case MenuState.Play:
backButton.TriggerClick(); backButton.TriggerOnClick();
return true; return true;
} }
@ -178,10 +178,10 @@ namespace osu.Game.Screens.Menu
State = MenuState.TopLevel; State = MenuState.TopLevel;
return; return;
case MenuState.TopLevel: case MenuState.TopLevel:
buttonsTopLevel.First().TriggerClick(); buttonsTopLevel.First().TriggerOnClick();
return; return;
case MenuState.Play: case MenuState.Play:
buttonsPlay.First().TriggerClick(); buttonsPlay.First().TriggerOnClick();
return; return;
} }
} }

View File

@ -26,7 +26,7 @@ namespace osu.Game.Screens.Play
{ {
if (!args.Repeat && args.Key == Key.Escape) if (!args.Repeat && args.Key == Key.Escape)
{ {
Buttons.Children.Last().TriggerClick(); Buttons.Children.Last().TriggerOnClick();
return true; return true;
} }

View File

@ -131,13 +131,13 @@ namespace osu.Game.Screens.Play
public override bool HandleInput => true; public override bool HandleInput => true;
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) => target.Children.Any(c => c.TriggerKeyDown(state, args)); protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) => target.Children.Any(c => c.TriggerOnKeyDown(state, args));
protected override bool OnKeyUp(InputState state, KeyUpEventArgs args) => target.Children.Any(c => c.TriggerKeyUp(state, args)); protected override bool OnKeyUp(InputState state, KeyUpEventArgs args) => target.Children.Any(c => c.TriggerOnKeyUp(state, args));
protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => target.Children.Any(c => c.TriggerMouseDown(state, args)); protected override bool OnMouseDown(InputState state, MouseDownEventArgs args) => target.Children.Any(c => c.TriggerOnMouseDown(state, args));
protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) => target.Children.Any(c => c.TriggerMouseUp(state, args)); protected override bool OnMouseUp(InputState state, MouseUpEventArgs args) => target.Children.Any(c => c.TriggerOnMouseUp(state, args));
} }
} }
} }

View File

@ -136,7 +136,7 @@ namespace osu.Game.Screens.Play
{ {
if (!args.Repeat && args.Key == Key.Escape) if (!args.Repeat && args.Key == Key.Escape)
{ {
Buttons.Children.First().TriggerClick(); Buttons.Children.First().TriggerOnClick();
return true; return true;
} }

View File

@ -127,7 +127,7 @@ namespace osu.Game.Screens.Play
switch (args.Key) switch (args.Key)
{ {
case Key.Space: case Key.Space:
button.TriggerClick(); button.TriggerOnClick();
return true; return true;
} }

View File

@ -154,7 +154,8 @@ namespace osu.Game.Screens.Select
public void Deactivate() public void Deactivate()
{ {
searchTextBox.HoldFocus = false; searchTextBox.HoldFocus = false;
searchTextBox.TriggerFocusLost(); if (searchTextBox.HasFocus)
inputManager.ChangeFocus(searchTextBox);
} }
public void Activate() public void Activate()
@ -164,9 +165,13 @@ namespace osu.Game.Screens.Select
private readonly Bindable<RulesetInfo> ruleset = new Bindable<RulesetInfo>(); private readonly Bindable<RulesetInfo> ruleset = new Bindable<RulesetInfo>();
[BackgroundDependencyLoader(permitNulls:true)] private InputManager inputManager;
private void load(OsuColour colours, OsuGame osu)
[BackgroundDependencyLoader(permitNulls: true)]
private void load(OsuColour colours, OsuGame osu, UserInputManager inputManager)
{ {
this.inputManager = inputManager;
sortTabs.AccentColour = colours.GreenLight; sortTabs.AccentColour = colours.GreenLight;
if (osu != null) if (osu != null)