module charge.game.tui.windowscene

Contains classes and code to create a text-user-interface window scene.

Code Map

//! Contains classes and code to create a text-user-interface window
//! scene.
module charge.game.tui.windowscene;


//! A text-user-interface that draws to a single window on the screen.
class WindowScene : scene.Simple
{
public:
	enum HeaderExtra;
	enum HeaderShadow;
	enum BorderSize;


public:
	posX: i32;
	posY: i32;
	headerGrid: Grid;
	grid: Grid;
	headerBackgroundColor: math.Color4f;
	gridBackgroundColor: math.Color4f;


public:
	this(m: scene.Manager, width: u32, height: u32) { }
	fn close() { }
	fn mouseDown(m: ctl.Mouse, button: i32) { }
	fn render(t: gfx.Target, viewInfo: gfx.ViewInfo) { }
	fn gridMouseDown(m: ctl.Mouse, x: u32, y: u32, button: i32) { }
	fn setSize(width: u32, height: u32) { }
	fn setHeader(glyphs: scope (const(scope (u8)[])) { }
	fn getSizeInPixels(width: u32, height: u32) { }
	fn getGridPositionOnScreen(x: i32, y: i32) { }
	fn getHeaderSizeInPixels(w: u32, h: u32) { }


protected:
	mTarget: gfx.FramebufferResizer;
	mBlitter: gfx.TextureBlitter;
}
class WindowScene : scene.Simple

A text-user-interface that draws to a single window on the screen.

Usefull for implementing menus, see charge.game.tui.menuscene.