31 lines
994 B
TypeScript
31 lines
994 B
TypeScript
|
import Node from "./Node";
|
||
|
|
||
|
export default class TextNode extends Node
|
||
|
{
|
||
|
public color : string = "#000000";
|
||
|
public text: string;
|
||
|
public fontSize : number = 18;
|
||
|
constructor(text: string){
|
||
|
super();
|
||
|
this.text = text;
|
||
|
|
||
|
this.handleDrawBefore(function(){
|
||
|
this.height = this.fontSize;
|
||
|
this.context.context.save();
|
||
|
this.context.context.font = this.fontSize+"px system-ui";
|
||
|
this.width = this.context.context.measureText(this.text).width;
|
||
|
this.context.context.restore();
|
||
|
console.log(this.width)
|
||
|
});
|
||
|
this.handleDraw(function(canvasBuffer,area){
|
||
|
let ctx = canvasBuffer.context;
|
||
|
ctx.font = this.fontSize+"px system-ui";
|
||
|
ctx.beginPath();
|
||
|
ctx.fillStyle = this.color;
|
||
|
ctx.textAlign = 'left';
|
||
|
ctx.textBaseline = 'top';
|
||
|
ctx.fillText(this.text, 0,0);
|
||
|
ctx.closePath();
|
||
|
});
|
||
|
}
|
||
|
};
|