File: graphics/js/CanvasPath.js
- /**
- * <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a> implementation of the <a href="Path.html">`Path`</a> class.
- * `CanvasPath` is not intended to be used directly. Instead, use the <a href="Path.html">`Path`</a> class.
- * If the browser lacks <a href="http://www.w3.org/TR/SVG/">SVG</a> capabilities but has
- * <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a> capabilities, the <a href="Path.html">`Path`</a>
- * class will point to the `CanvasPath` class.
- *
- * @module graphics
- * @class CanvasPath
- * @extends CanvasShape
- */
- CanvasPath = function()
- {
- CanvasPath.superclass.constructor.apply(this, arguments);
- };
- CanvasPath.NAME = "path";
- Y.extend(CanvasPath, Y.CanvasShape, {
- /**
- * Indicates the type of shape
- *
- * @property _type
- * @type String
- * @private
- */
- _type: "path",
-
- /**
- * Draws the shape.
- *
- * @method _draw
- * @private
- */
- _draw: function()
- {
- this._closePath();
- this._updateTransform();
- },
-
- /**
- * Creates the dom node for the shape.
- *
- * @method createNode
- * @return HTMLElement
- * @private
- */
- createNode: function()
- {
- var host = this,
- node = Y.config.doc.createElement('canvas'),
- name = host.name,
- concat = host._camelCaseConcat,
- id = host.get("id");
- host._context = node.getContext('2d');
- node.setAttribute("overflow", "visible");
- node.setAttribute("pointer-events", "none");
- node.style.pointerEvents = "none";
- node.style.overflow = "visible";
- node.setAttribute("id", id);
- id = "#" + id;
- host.node = node;
- host.addClass(
- _getClassName(SHAPE) +
- " " +
- _getClassName(concat(IMPLEMENTATION, SHAPE)) +
- " " +
- _getClassName(name) +
- " " +
- _getClassName(concat(IMPLEMENTATION, name))
- );
- },
-
- /**
- * Completes a drawing operation.
- *
- * @method end
- */
- end: function()
- {
- this._draw();
- return this;
- }
- });
-
- CanvasPath.ATTRS = Y.merge(Y.CanvasShape.ATTRS, {
- /**
- * Indicates the width of the shape
- *
- * @config width
- * @type Number
- */
- width: {
- getter: function()
- {
- var offset = this._stroke && this._strokeWeight ? (this._strokeWeight * 2) : 0;
- return this._width - offset;
- },
-
- setter: function(val)
- {
- this._width = val;
- return val;
- }
- },
-
- /**
- * Indicates the height of the shape
- *
- * @config height
- * @type Number
- */
- height: {
- getter: function()
- {
- var offset = this._stroke && this._strokeWeight ? (this._strokeWeight * 2) : 0;
- return this._height - offset;
- },
-
- setter: function(val)
- {
- this._height = val;
- return val;
- }
- },
-
- /**
- * Indicates the path used for the node.
- *
- * @config path
- * @type String
- * @readOnly
- */
- path: {
- readOnly: true,
-
- getter: function()
- {
- return this._path;
- }
- }
- });
- Y.CanvasPath = CanvasPath;
-
-