#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# File: graphics/js/CanvasCircle.js

    /**
     * <a href="http://www.w3.org/TR/html5/the-canvas-element.html">Canvas</a> implementation of the <a href="Circle.html">`Circle`</a> class.
     * `CanvasCircle` is not intended to be used directly. Instead, use the <a href="Circle.html">`Circle`</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="Circle.html">`Circle`</a>
     * class will point to the `CanvasCircle` class.
     *
     * @module graphics
     * @class CanvasCircle
     * @constructor
     */
    CanvasCircle = function()
    {
    	CanvasCircle.superclass.constructor.apply(this, arguments);
    };

    CanvasCircle.NAME = "circle";

    Y.extend(CanvasCircle, Y.CanvasShape, {
    	/**
    	 * Indicates the type of shape
    	 *
    	 * @property _type
    	 * @type String
         * @private
    	 */
    	_type: "circle",

    	/**
         * Draws the shape.
         *
         * @method _draw
    	 * @private
    	 */
    	_draw: function()
    	{
    		var radius = this.get("radius");
    		if(radius)
    		{
                this.clear();
                this.drawCircle(0, 0, radius);
    			this._closePath();
    		}
    	}
    });

    CanvasCircle.ATTRS = Y.merge(Y.CanvasShape.ATTRS, {
    	/**
    	 * Indicates the width of the shape
    	 *
    	 * @config width
    	 * @type Number
    	 */
    	width: {
            setter: function(val)
            {
                this.set("radius", val/2);
                return val;
            },

    		getter: function()
    		{
    			return this.get("radius") * 2;
    		}
    	},

    	/**
    	 * Indicates the height of the shape
    	 *
    	 * @config height
    	 * @type Number
    	 */
    	height: {
            setter: function(val)
            {
                this.set("radius", val/2);
                return val;
            },

    		getter: function()
    		{
    			return this.get("radius") * 2;
    		}
    	},

    	/**
    	 * Radius of the circle
    	 *
    	 * @config radius
         * @type Number
    	 */
    	radius: {
    		lazyAdd: false
    	}
    });
    Y.CanvasCircle = CanvasCircle;