2016-10-13 14:57:05 +00:00
|
|
|
|
using osu.Framework;
|
|
|
|
|
using osu.Framework.Graphics.Containers;
|
|
|
|
|
|
|
|
|
|
namespace osu.Game.Overlays
|
|
|
|
|
{
|
|
|
|
|
public abstract class Overlay : Container, IStateful<Visibility>
|
|
|
|
|
{
|
|
|
|
|
private Visibility state;
|
|
|
|
|
public Visibility State
|
|
|
|
|
{
|
|
|
|
|
get { return state; }
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (value == state) return;
|
|
|
|
|
state = value;
|
|
|
|
|
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case Visibility.Hidden:
|
|
|
|
|
PopOut();
|
|
|
|
|
break;
|
|
|
|
|
case Visibility.Visible:
|
|
|
|
|
PopIn();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected abstract void PopIn();
|
|
|
|
|
|
|
|
|
|
protected abstract void PopOut();
|
|
|
|
|
|
2016-10-13 21:02:13 +00:00
|
|
|
|
public void ToggleVisibility()
|
2016-10-13 14:57:05 +00:00
|
|
|
|
=> State = (State == Visibility.Visible ? Visibility.Hidden : Visibility.Visible);
|
|
|
|
|
}
|
|
|
|
|
public enum Visibility
|
|
|
|
|
{
|
|
|
|
|
Hidden,
|
|
|
|
|
Visible
|
|
|
|
|
}
|
|
|
|
|
}
|