class Button{

	field int position;
	field String text;

	constructor Button new(int p,String t){
		let position = p;
		let text = t;
		return this;
	}

	method void dispose(){
		if (~(text=null)){
			do text.dispose();
		}
        do Memory.deAlloc(this);
		return;
	}	

	method void draw(boolean press){
		var int x;
		var int y;
		var int color;
		let x = position & 3;
		let y = position/4;
		if (press) {
			let color = Screen.DARKGREY();
		} else {
			let color = Screen.LIGHTGREY();
		}
		do Screen.setPenColor(color);
		do Screen.drawRectangle((x*60)+1,288-(y*33),(x*60)+58,318-(y*33));
		do Screen.setBackColor(color);
		do Screen.setPenColor(Screen.BLACK());
		do Output.moveCursor(27-(3*y),1+((x*15)/2));
		if (~(text=null)){do Output.printString(text);}
		do Screen.setBackColor(Screen.WHITE());
		return;
	}	
}
