mirror of
https://github.com/osukey/osukey.git
synced 2025-05-29 17:37:23 +09:00
Merge pull request #1441 from swoolcock/settingsitem-getboundcopy
Change SettingsItem to use GetBoundCopy
This commit is contained in:
commit
8460b4b2a2
@ -80,7 +80,7 @@ namespace osu.Game.Overlays.Settings
|
|||||||
controlWithCurrent?.Current.BindTo(bindable);
|
controlWithCurrent?.Current.BindTo(bindable);
|
||||||
if (ShowsDefaultIndicator)
|
if (ShowsDefaultIndicator)
|
||||||
{
|
{
|
||||||
restoreDefaultValueButton.Bindable.BindTo(bindable);
|
restoreDefaultValueButton.Bindable = bindable.GetBoundCopy();
|
||||||
restoreDefaultValueButton.Bindable.TriggerChange();
|
restoreDefaultValueButton.Bindable.TriggerChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,7 +134,17 @@ namespace osu.Game.Overlays.Settings
|
|||||||
|
|
||||||
private class RestoreDefaultValueButton<T> : Box, IHasTooltip
|
private class RestoreDefaultValueButton<T> : Box, IHasTooltip
|
||||||
{
|
{
|
||||||
internal readonly Bindable<T> Bindable = new Bindable<T>();
|
private Bindable<T> bindable;
|
||||||
|
internal Bindable<T> Bindable
|
||||||
|
{
|
||||||
|
get { return bindable; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
bindable = value;
|
||||||
|
bindable.ValueChanged += newValue => UpdateState();
|
||||||
|
bindable.DisabledChanged += disabled => UpdateState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Color4 buttonColour;
|
private Color4 buttonColour;
|
||||||
|
|
||||||
@ -142,9 +152,6 @@ namespace osu.Game.Overlays.Settings
|
|||||||
|
|
||||||
public RestoreDefaultValueButton()
|
public RestoreDefaultValueButton()
|
||||||
{
|
{
|
||||||
Bindable.ValueChanged += value => UpdateState();
|
|
||||||
Bindable.DisabledChanged += disabled => UpdateState();
|
|
||||||
|
|
||||||
RelativeSizeAxes = Axes.Y;
|
RelativeSizeAxes = Axes.Y;
|
||||||
Width = SettingsOverlay.CONTENT_MARGINS;
|
Width = SettingsOverlay.CONTENT_MARGINS;
|
||||||
Alpha = 0f;
|
Alpha = 0f;
|
||||||
@ -160,8 +167,8 @@ namespace osu.Game.Overlays.Settings
|
|||||||
|
|
||||||
protected override bool OnClick(InputState state)
|
protected override bool OnClick(InputState state)
|
||||||
{
|
{
|
||||||
if (!Bindable.Disabled)
|
if (bindable != null && !bindable.Disabled)
|
||||||
Bindable.SetDefault();
|
bindable.SetDefault();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,8 +193,10 @@ namespace osu.Game.Overlays.Settings
|
|||||||
|
|
||||||
internal void UpdateState()
|
internal void UpdateState()
|
||||||
{
|
{
|
||||||
var colour = Bindable.Disabled ? Color4.Gray : buttonColour;
|
if (bindable == null)
|
||||||
this.FadeTo(Bindable.IsDefault ? 0f : hovering && !Bindable.Disabled ? 1f : 0.5f, 200, Easing.OutQuint);
|
return;
|
||||||
|
var colour = bindable.Disabled ? Color4.Gray : buttonColour;
|
||||||
|
this.FadeTo(bindable.IsDefault ? 0f : hovering && !bindable.Disabled ? 1f : 0.5f, 200, Easing.OutQuint);
|
||||||
this.FadeColour(ColourInfo.GradientHorizontal(colour.Opacity(0.8f), colour.Opacity(0)), 200, Easing.OutQuint);
|
this.FadeColour(ColourInfo.GradientHorizontal(colour.Opacity(0.8f), colour.Opacity(0)), 200, Easing.OutQuint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user