comic-bubbles
Version:
Animated comic bubbles - what else?
60 lines (47 loc) • 1.23 kB
JavaScript
import { Margin } from "./margin.mjs"
export class Text {
constructor(parent) {
this.canvas = document.createElement('canvas')
this.margin = new Margin(this)
this.parent = parent
}
rowArr = new Array()
getWidth() {
let width = 0
for (let i = 0; i < this.rowArr.length; i++) {
width = Math.max(this.rowArr[i].getWidth(), width)
}
return width
}
getHeight() {
let height = 0
for (let i = 0; i < this.rowArr.length; i++) {
if (i == 0) height += this.rowArr[i].getHeight()
if (i > 0) height += this.rowArr[i].getMaxLineSpacing()
}
return height
}
getX() {
return this.parent.getX() + this.margin.left
}
getY() {
return this.parent.getY() + this.margin.top
}
getPrefStr() {
return this.parent === undefined ? 'text' : this.parent.getPrefStr() + '.text'
}
addRow(row) {
row.parent = this
row.arrIdx = this.rowArr.length
this.rowArr.push(row)
}
row(idx) {
return this.rowArr[idx]
}
getRowCount() {
return this.rowArr.length
}
ctx() {
return this.canvas.getContext('2d')
}
}