using RecrownedAthenaeum.ContentSystem;
using RecrownedAthenaeum.UI.Modular;
using RecrownedAthenaeum.UI.SkinSystem;
namespace RecrownedAthenaeum.UI.BookSystem
{
///
/// A page a part of a .
///
public class Page : UIModuleGroup
{
private readonly int pageX, pageY;
///
/// Whether or not this book needs to be refreshed with new dimensions.
///
public bool requiresSizeUpdate;
///
/// Constructs a page.
///
/// The X position in the book.
/// The Y position in the book.
public Page(int pageX, int pageY) : base(false)
{
this.pageX = pageX;
this.pageY = pageY;
requiresSizeUpdate = true;
Name = ToString();
}
///
/// Called when this page is flagged as needing a size update.
///
/// New width.
/// New Height
public virtual void ApplySize(int width, int height)
{
bounds.X = pageX * width;
bounds.Y = pageY * height;
bounds.Width = width;
bounds.Height = height;
requiresSizeUpdate = false;
}
///
/// Called only once after a page is added to a . Generally used to instantiate the modules of the page.
///
/// The assets to be used during initialization passed by the book this page belongs to.
/// The skin the book containing this page is given that can be used by this page.
protected internal virtual void Initialize(ContentManagerController assets, ISkin skin)
{
}
}
}