import Sprite from '../Sprite';
/**
* @class Text
* @memberof text
* @desc Renders canvas text
* @extends Sprite
* @author Chris Peters
*/
export default class Text extends Sprite {
constructor(value = '', x = 0, y = 0) {
super(x, y);
this._value = value;
this._size = 16;
this._font = 'sans-serif';
this._baseline = 'top';
this._fill = '#000';
this._stroke = '';
}
/**
* Returns current text value
*
* @memberof text
* @method Text#getValue
* @returns {String}
*/
getValue() {
return this._value;
}
/*getTextWidth() {
return
}*/
/**
* [setFill description]
*
* @memberof text
* @method Text#setFill
* @param {String} val The fill color hex, rgb, rgba, etc.
*/
setFill(val) {
this._fill = val;
}
/**
* [setStroke description]
*
* @memberof text
* @method Text#setStroke
* @param {String} val The stroke color hex, rgb, rgba, etc.
*/
setStroke(val) {
this._stroke = val;
}
/**
*
* @memberof text
* @method Text#setValue
* @param {String} val The desired string value
*/
setValue(val) {
this._value = val;
}
/**
*
* @memberof text
* @method Text#render
* @param {Object} context The CanvasRenderingContext2D object
* @param {Integer} factor The 0-1-based model of elapsed time
* @param {Integer} ticks Total elapsed ticks
*/
render(context) {
super.render(context);
context.font = `${this._size}px ${this._font}`;
context.textBaseline = this._baseline;
if (this._fill) {
context.fillStyle = this._fill;
context.fillText(this._value, 0, 0);
}
if (this._stroke) {
context.strokeStyle = this._stroke;
context.strokeText(this._value, 0, 0);
}
}
}