mirror of
https://github.com/ppy/osu
synced 2025-01-05 21:59:46 +00:00
Fix checkbox not updating correctly.
This commit is contained in:
parent
d6dafd6b70
commit
904d258dc3
@ -1,53 +1,54 @@
|
||||
using System;
|
||||
using System;
|
||||
using osu.Framework.Configuration;
|
||||
using osu.Framework.Graphics.UserInterface;
|
||||
|
||||
namespace osu.Game.Overlays.Options
|
||||
{
|
||||
public class CheckBoxOption : BasicCheckBox
|
||||
{
|
||||
private Bindable<bool> bindable;
|
||||
|
||||
public Bindable<bool> Bindable
|
||||
{
|
||||
set
|
||||
{
|
||||
if (bindable != null)
|
||||
bindable.ValueChanged -= bindableValueChanged;
|
||||
bindable = value;
|
||||
if (bindable != null)
|
||||
namespace osu.Game.Overlays.Options
|
||||
{
|
||||
public class CheckBoxOption : BasicCheckBox
|
||||
{
|
||||
private Bindable<bool> bindable;
|
||||
|
||||
public Bindable<bool> Bindable
|
||||
{
|
||||
set
|
||||
{
|
||||
if (bindable != null)
|
||||
bindable.ValueChanged -= bindableValueChanged;
|
||||
bindable = value;
|
||||
if (bindable != null)
|
||||
{
|
||||
bool state = State == CheckBoxState.Checked;
|
||||
if (state != bindable.Value)
|
||||
State = bindable.Value ? CheckBoxState.Checked : CheckBoxState.Unchecked;
|
||||
bindable.ValueChanged += bindableValueChanged;
|
||||
}
|
||||
}
|
||||
bindable.ValueChanged += bindableValueChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void bindableValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
State = bindable.Value ? CheckBoxState.Checked : CheckBoxState.Unchecked;
|
||||
}
|
||||
|
||||
|
||||
private void bindableValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
State = bindable.Value ? CheckBoxState.Checked : CheckBoxState.Unchecked;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool isDisposing)
|
||||
{
|
||||
if (bindable != null)
|
||||
{
|
||||
if (bindable != null)
|
||||
bindable.ValueChanged -= bindableValueChanged;
|
||||
base.Dispose(isDisposing);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected override void OnChecked()
|
||||
{
|
||||
if (bindable != null)
|
||||
{
|
||||
if (bindable != null)
|
||||
bindable.Value = true;
|
||||
base.OnChecked();
|
||||
}
|
||||
|
||||
protected override void OnUnchecked()
|
||||
{
|
||||
if (bindable != null)
|
||||
bindable.Value = false;
|
||||
base.OnChecked();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnUnchecked()
|
||||
{
|
||||
if (bindable != null)
|
||||
bindable.Value = false;
|
||||
base.OnUnchecked();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user