Files
pihkaal-me/src/screen-manager.ts
2025-12-13 18:28:53 +01:00

36 lines
823 B
TypeScript

import type { Screen, ScreenContext } from "./screen";
export class ScreenManager {
private currentScreen: Screen;
private context: ScreenContext;
constructor(initialScreen: Screen) {
this.currentScreen = initialScreen;
this.context = {
navigate: (screen: Screen) => {
this.currentScreen = screen;
},
};
}
renderTop(ctx: CanvasRenderingContext2D) {
ctx.clearRect(0, 0, 256, 192);
ctx.save();
this.currentScreen.renderTop(ctx);
ctx.restore();
}
renderBottom(ctx: CanvasRenderingContext2D) {
ctx.clearRect(0, 0, 256, 192);
ctx.save();
this.currentScreen.renderBottom(ctx);
ctx.restore();
}
handleTouch(x: number, y: number) {
if (this.currentScreen.handleTouch) {
this.currentScreen.handleTouch(x, y, this.context);
}
}
}