1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- var textHelper = require("../helper/text");
- var BoundingRect = require("../../core/BoundingRect");
- var _constant = require("../constant");
- var WILL_BE_RESTORED = _constant.WILL_BE_RESTORED;
- /**
- * Mixin for drawing text in a element bounding rect
- * @module zrender/mixin/RectText
- */
- var tmpRect = new BoundingRect();
- var RectText = function () {};
- RectText.prototype = {
- constructor: RectText,
- /**
- * Draw text in a rect with specified position.
- * @param {CanvasRenderingContext2D} ctx
- * @param {Object} rect Displayable rect
- */
- drawRectText: function (ctx, rect) {
- var style = this.style;
- rect = style.textRect || rect; // Optimize, avoid normalize every time.
- this.__dirty && textHelper.normalizeTextStyle(style, true);
- var text = style.text; // Convert to string
- text != null && (text += '');
- if (!textHelper.needDrawText(text, style)) {
- return;
- } // FIXME
- // Do not provide prevEl to `textHelper.renderText` for ctx prop cache,
- // but use `ctx.save()` and `ctx.restore()`. Because the cache for rect
- // text propably break the cache for its host elements.
- ctx.save(); // Transform rect to view space
- var transform = this.transform;
- if (!style.transformText) {
- if (transform) {
- tmpRect.copy(rect);
- tmpRect.applyTransform(transform);
- rect = tmpRect;
- }
- } else {
- this.setTransform(ctx);
- } // transformText and textRotation can not be used at the same time.
- textHelper.renderText(this, ctx, text, style, rect, WILL_BE_RESTORED);
- ctx.restore();
- }
- };
- var _default = RectText;
- module.exports = _default;
|