namespace V3.Screens
{
///
/// Handles screens using a screen stack. You can add screens to the
/// foreground using the AddScreen method, remove screens from the
/// foreground using the RemoveScreen method and remove all screens using
/// the Clear method. The top screen is always drawn and updated, and
/// it can decide whether lower screens should be drawn and/or updated
/// too. The screens are updated from top to bottom, and drawn from
/// bottom to top.
///
public interface IScreenManager : IDrawable, IUpdateable
{
///
/// Adds a screen to the foreground.
///
/// the screen to add in the foreground
void AddScreen(IScreen screen);
///
/// Removes the given screen if it is on the top of the screen stack.
///
/// the screen to remove
/// true if the screen was on top and has been removed,
/// false otherwise
void RemoveScreen(IScreen screen);
///
/// Clears the screen stack.
///
void Clear();
GameScreen GetGameScreen();
}
}