nand2/07_Operating_System/12_Tetris/Button.jack

41 lines
824 B
Plaintext
Raw Normal View History

2023-01-11 10:13:09 +00:00
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;
}
}