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

Merge branch 'master' into fix-editor-crash-on-two-mouse-button-click

This commit is contained in:
Dan Balasescu 2020-11-10 17:42:25 +09:00 committed by GitHub
commit 601cc477e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 1 deletions

View File

@ -32,6 +32,11 @@ namespace osu.Game.Overlays.BeatmapListing
/// </summary>
public Action SearchStarted;
/// <summary>
/// Any time the search text box receives key events (even while masked).
/// </summary>
public Action TypingStarted;
/// <summary>
/// True when pagination has reached the end of available results.
/// </summary>
@ -82,7 +87,10 @@ namespace osu.Game.Overlays.BeatmapListing
Radius = 3,
Offset = new Vector2(0f, 1f),
},
Child = searchControl = new BeatmapListingSearchControl(),
Child = searchControl = new BeatmapListingSearchControl
{
TypingStarted = () => TypingStarted?.Invoke()
}
},
new Container
{

View File

@ -1,12 +1,14 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osuTK;
using osu.Framework.Bindables;
using osu.Framework.Input.Events;
using osu.Game.Beatmaps.Drawables;
using osu.Game.Beatmaps;
using osu.Game.Graphics.Containers;
@ -19,6 +21,11 @@ namespace osu.Game.Overlays.BeatmapListing
{
public class BeatmapListingSearchControl : CompositeDrawable
{
/// <summary>
/// Any time the text box receives key events (even while masked).
/// </summary>
public Action TypingStarted;
public Bindable<string> Query => textBox.Current;
public Bindable<RulesetInfo> Ruleset => modeFilter.Current;
@ -102,6 +109,7 @@ namespace osu.Game.Overlays.BeatmapListing
textBox = new BeatmapSearchTextBox
{
RelativeSizeAxes = Axes.X,
TypingStarted = () => TypingStarted?.Invoke(),
},
new ReverseChildIDFillFlowContainer<Drawable>
{
@ -138,12 +146,26 @@ namespace osu.Game.Overlays.BeatmapListing
private class BeatmapSearchTextBox : SearchTextBox
{
/// <summary>
/// Any time the text box receives key events (even while masked).
/// </summary>
public Action TypingStarted;
protected override Color4 SelectionColour => Color4.Gray;
public BeatmapSearchTextBox()
{
PlaceholderText = @"type in keywords...";
}
protected override bool OnKeyDown(KeyDownEvent e)
{
if (!base.OnKeyDown(e))
return false;
TypingStarted?.Invoke();
return true;
}
}
}
}

View File

@ -68,6 +68,7 @@ namespace osu.Game.Overlays
Header,
filterControl = new BeatmapListingFilterControl
{
TypingStarted = onTypingStarted,
SearchStarted = onSearchStarted,
SearchFinished = onSearchFinished,
},
@ -102,6 +103,12 @@ namespace osu.Game.Overlays
};
}
private void onTypingStarted()
{
// temporary until the textbox/header is updated to always stay on screen.
resultScrollContainer.ScrollToStart();
}
protected override void OnFocus(FocusEvent e)
{
base.OnFocus(e);