Implement Color documentation.

This commit is contained in:
Jonathan Puckey 2011-05-27 21:13:39 +02:00
parent 30c92ae382
commit 2d5007dcd9

View file

@ -138,9 +138,16 @@ var Color = this.Color = Base.extend(new function() {
}; };
var fields = { var fields = {
/** @lends Color# */
beans: true, beans: true,
_readNull: true, _readNull: true,
// DOCS: write Color constructor and class documentation.
/**
* @constructs Color
* @class
*/
initialize: function(arg) { initialize: function(arg) {
var isArray = Array.isArray(arg), var isArray = Array.isArray(arg),
type = this._colorType; type = this._colorType;
@ -194,7 +201,10 @@ var Color = this.Color = Base.extend(new function() {
} }
}, },
clone: function(color) { /**
* @return {RGBColor|GrayColor|HSBColor} a copy of the color object
*/
clone: function() {
var ctor = this.constructor, var ctor = this.constructor,
copy = new ctor(ctor.dont), copy = new ctor(ctor.dont),
components = this._components; components = this._components;
@ -269,8 +279,22 @@ var Color = this.Color = Base.extend(new function() {
return fields; return fields;
}, { }, {
/** @lends Color# */
beans: true, beans: true,
/**
* Returns the type of the color as a string.
*
* Sample code:
* <code>
* var color = new RGBColor(1, 0, 0);
* console.log(color.type); // 'rgb'
* </code>
*
* @type String
* @bean
*/
getType: function() { getType: function() {
return this._colorType; return this._colorType;
}, },
@ -286,6 +310,9 @@ var Color = this.Color = Base.extend(new function() {
/** /**
* A value between 0 and 1 that specifies the color's alpha value. * A value between 0 and 1 that specifies the color's alpha value.
* All colors of the different subclasses support alpha values. * All colors of the different subclasses support alpha values.
*
* @type Number
* @bean
*/ */
getAlpha: function() { getAlpha: function() {
return this._alpha != null ? this._alpha : 1; return this._alpha != null ? this._alpha : 1;
@ -300,7 +327,7 @@ var Color = this.Color = Base.extend(new function() {
/** /**
* Checks if the color has an alpha value. * Checks if the color has an alpha value.
* *
* @return {@true if the color has an alpha value} * @return {Boolean} {@true if the color has an alpha value}
*/ */
hasAlpha: function() { hasAlpha: function() {
return this._alpha != null; return this._alpha != null;
@ -310,8 +337,8 @@ var Color = this.Color = Base.extend(new function() {
* Checks if the component color values of the color are the * Checks if the component color values of the color are the
* same as those of the supplied one. * same as those of the supplied one.
* *
* @param obj the GrayColor to compare with * @param {Color} color the color to compare with
* @return {@true if the GrayColor is the same} * @return {Boolean} {@true if the colors are the same}
*/ */
equals: function(color) { equals: function(color) {
if (color && color._colorType === this._colorType) { if (color && color._colorType === this._colorType) {
@ -325,6 +352,10 @@ var Color = this.Color = Base.extend(new function() {
return false; return false;
}, },
/**
* {@grouptitle String Representations}
* @return {String} A string representation of the color.
*/
toString: function() { toString: function() {
var parts = [], var parts = [],
format = Base.formatNumber; format = Base.formatNumber;
@ -338,6 +369,9 @@ var Color = this.Color = Base.extend(new function() {
return '{ ' + parts.join(', ') + ' }'; return '{ ' + parts.join(', ') + ' }';
}, },
/**
* @return {String} A css representation of the color.
*/
toCssString: function() { toCssString: function() {
if (!this._cssString) { if (!this._cssString) {
var color = this.convert('rgb'), var color = this.convert('rgb'),
@ -356,16 +390,128 @@ var Color = this.Color = Base.extend(new function() {
getCanvasStyle: function() { getCanvasStyle: function() {
return this.toCssString(); return this.toCssString();
} }
/**
* {@grouptitle RGB Components}
*
* The amount of red in the color as a value between {@code 0} and
* {@code 1}.
*
* @name Color#red
* @property
* @type Number
*/
/**
* The amount of green in the color as a value between {@code 0} and
* {@code 1}.
*
* @name Color#green
* @property
* @type Number
*/
/**
* The amount of blue in the color as a value between {@code 0} and
* {@code 1}.
*
* @name Color#blue
* @property
* @type Number
*/
/**
* {@grouptitle Gray Components}
*
* The amount of gray in the color as a value between {@code 0} and
* {@code 1}.
*
* @name Color#gray
* @property
* @type Number
*/
/**
* {@grouptitle HSB Components}
*
* The hue of the color as a value in degrees between {@code 0} and
* {@code 360}.
*
* @name Color#hue
* @property
* @type Number
*/
/**
* The saturation of the color as a value between {@code 0} and {@code 1}.
*
* @name Color#saturation
* @property
* @type Number
*/
/**
* The brightness of the color as a value between {@code 0} and {@code 1}.
*
* @name Color#brightness
* @property
* @type Number
*/
}); });
var GrayColor = this.GrayColor = Color.extend({ var GrayColor = this.GrayColor = Color.extend(/** @scope GrayColor */{
/**
* Creates a GrayColor object
*
* @param {Number} gray the amount of gray in the color as a value
* between {@code 0} and {@code 1}
* @constructor
* @name GrayColor
*
* @class A GrayColor object is used to represent any gray color value.
* @extends Color
*/
_colorType: 'gray' _colorType: 'gray'
}); });
var RGBColor = this.RGBColor = Color.extend({ var RGBColor = this.RGBColor = Color.extend(/** @scope RGBColor */{
/**
* Creates an RGBColor object
*
* @param {Number} red the amount of red in the color as a value
* between {@code 0} and {@code 1}
* @param {Number} green the amount of green in the color as a value
* between {@code 0} and {@code 1}
* @param {Number} blue the amount of blue in the color as a value
* between {@code 0} and {@code 1}
* @constructor
* @name RGBColor
*
* @class An RGBColor object is used to represent any RGB color value.
* @extends Color
*/
_colorType: 'rgb' _colorType: 'rgb'
}); });
var HSBColor = this.HSBColor = Color.extend({ var HSBColor = this.HSBColor = Color.extend(/** @scope HSBColor */{
/**
* Creates an HSBColor object
*
* @param {Number} hue the hue of the color as a value in degrees between
* {@code 0} and {@code 360}.
* @param {Number} saturation the saturation of the color as a value
* between {@code 0} and {@code 1}
* @param {Number} brightness the brightness of the color as a value
* between {@code 0} and {@code 1}
* @constructor
* @name HSBColor
*
* @class An HSBColor object is used to represent any HSB color value.
* @extends Color
*/
_colorType: 'hsb' _colorType: 'hsb'
}); });