-<html><head><title>Roo/lib/Color.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
+<html><head><title>Roo/lib/Color.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
-Color.js
-
-Functions for Color handling and processing.
-
-http://www.safalra.com/web-design/javascript/Color-handling-and-processing/
-
-The author of this program, Safalra (Stephen Morley), irrevocably releases all
-rights to this program, with the intention of it becoming part of the public
-domain. Because this program is released into the public domain, it comes with
-no warranty either expressed or implied, to the extent permitted by law.
-
-For more free and public domain JavaScript code by the same author, visit:
-http://www.safalra.com/web-design/javascript/
-
-*/
-
-
-/*
+<span class="jsdoc-comment">/**
* @class Roo.lib.Color
* @constructor
* An abstract Color implementation. Concrete Color implementations should use
* return an object representing the HSL components of this Color, with the hue
* component in the range [0,360), the saturation and lightness components in
* the range [0,100], and the alpha component in the range [0,1].
+ *
+ *
+ * Color.js
+ *
+ * Functions for Color handling and processing.
+ *
+ * http://www.safalra.com/web-design/javascript/Color-handling-and-processing/
+ *
+ * The author of this program, Safalra (Stephen Morley), irrevocably releases all
+ * rights to this program, with the intention of it becoming part of the public
+ * domain. Because this program is released into the public domain, it comes with
+ * no warranty either expressed or implied, to the extent permitted by law.
+ *
+ * For more free and public domain JavaScript code by the same author, visit:
+ * http://www.safalra.com/web-design/javascript/
+ *
*/
</span><span class="jsdoc-var">Roo.lib.Color </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { }
</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.Color.prototype</span><span class="jsdoc-syntax">, {
+
+ </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
+
</span><span class="jsdoc-comment">/**
- * @returns an object representing the RGBA components of this Color. The red,
+ * getIntegerRGB
+ * @return {Object} an object representing the RGBA components of this Color. The red,
* green, and blue components are converted to integers in the range [0,255].
* The alpha is a value in the range [0,1].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns an object representing the RGBA components of this Color. The red,
+ * getPercentageRGB
+ * @return {Object} an object representing the RGBA components of this Color. The red,
* green, and blue components are converted to numbers in the range [0,100].
* The alpha is a value in the range [0,1].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns a string representing this Color as a CSS hexadecimal RGB Color
+ * getCSSHexadecimalRGB
+ * @return {String} a string representing this Color as a CSS hexadecimal RGB Color
* value - that is, a string of the form #RRGGBB where each of RR, GG, and BB
* are two-digit hexadecimal numbers.
*/
},
</span><span class="jsdoc-comment">/**
- * @returns a string representing this Color as a CSS integer RGB Color
+ * getCSSIntegerRGB
+ * @return {String} a string representing this Color as a CSS integer RGB Color
* value - that is, a string of the form rgb(r,g,b) where each of r, g, and b
* are integers in the range [0,255].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns Returns a string representing this Color as a CSS integer RGBA Color
+ * getCSSIntegerRGBA
+ * @return {String} Returns a string representing this Color as a CSS integer RGBA Color
* value - that is, a string of the form rgba(r,g,b,a) where each of r, g, and
* b are integers in the range [0,255] and a is in the range [0,1].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns a string representing this Color as a CSS percentage RGB Color
+ * getCSSPercentageRGB
+ * @return {String} a string representing this Color as a CSS percentage RGB Color
* value - that is, a string of the form rgb(r%,g%,b%) where each of r, g, and
* b are in the range [0,100].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns a string representing this Color as a CSS percentage RGBA Color
+ * getCSSPercentageRGBA
+ * @return {String} a string representing this Color as a CSS percentage RGBA Color
* value - that is, a string of the form rgba(r%,g%,b%,a) where each of r, g,
* and b are in the range [0,100] and a is in the range [0,1].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns a string representing this Color as a CSS HSL Color value - that
+ * getCSSHSL
+ * @return {String} a string representing this Color as a CSS HSL Color value - that
* is, a string of the form hsl(h,s%,l%) where h is in the range [0,100] and
* s and l are in the range [0,100].
*/
},
</span><span class="jsdoc-comment">/**
- * @returns a string representing this Color as a CSS HSLA Color value - that
+ * getCSSHSLA
+ * @return {String} a string representing this Color as a CSS HSLA Color value - that
* is, a string of the form hsla(h,s%,l%,a) where h is in the range [0,100],
* s and l are in the range [0,100], and a is in the range [0,1].
*/
</span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.lib.HSVColor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsv.h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hsv.s </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hsv.v </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hsv.a </span><span class="jsdoc-syntax">);
- }
+ },
+
+
+ </span><span class="jsdoc-comment">/**
+ * getRGB
+ * @return {Object} the RGB and alpha components of this Color as an object with r,
+ * g, b, and a properties. r, g, and b are in the range [0,255] and a is in
+ * the range [0,1].
+ */
+ </span><span class="jsdoc-var">getRGB</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+
+ </span><span class="jsdoc-comment">// return the RGB components
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
+ </span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.rgb.r</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.rgb.g</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.rgb.b</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.alpha
+ </span><span class="jsdoc-syntax">};
+
+ },
+
+ </span><span class="jsdoc-comment">/**
+ * getHSV
+ * @return {Object} the HSV and alpha components of this Color as an object with h,
+ * s, v, and a properties. h is in the range [0,360), s and v are in the range
+ * [0,100], and a is in the range [0,1].
+ */
+ </span><span class="jsdoc-var">getHSV </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+ {
+
+ </span><span class="jsdoc-comment">// calculate the HSV components if necessary
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hsv </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">this.calculateHSV</span><span class="jsdoc-syntax">();
+
+ </span><span class="jsdoc-comment">// return the HSV components
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
+ </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsv.h</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsv.s</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsv.v</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.alpha
+ </span><span class="jsdoc-syntax">};
+
+ },
+
+ </span><span class="jsdoc-comment">/**
+ * getHSL
+ * @return {Object} the HSL and alpha components of this Color as an object with h,
+ * s, l, and a properties. h is in the range [0,360), s and l are in the range
+ * [0,100], and a is in the range [0,1].
+ */
+ </span><span class="jsdoc-var">getHSL </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-comment">// calculate the HSV components if necessary
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hsl </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">this.calculateHSL</span><span class="jsdoc-syntax">();
+
+ </span><span class="jsdoc-comment">// return the HSL components
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
+ </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.h</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.s</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'l' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.l</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.alpha
+ </span><span class="jsdoc-syntax">};
+
+ }
});
-</span><span class="jsdoc-comment">/*
+</span><span class="jsdoc-comment">/**
* @class Roo.lib.RGBColor
* @extends Roo.lib.Color
* Creates a Color specified in the RGB Color space, with an optional alpha
* component. The parameters are:
- *
- * r - the red component, clipped to the range [0,255]
- * g - the green component, clipped to the range [0,255]
- * b - the blue component, clipped to the range [0,255]
- * a - the alpha component, clipped to the range [0,1] - this parameter is
+ * @constructor
+ *
+
+ * @param {Number} r - the red component, clipped to the range [0,255]
+ * @param {Number} g - the green component, clipped to the range [0,255]
+ * @param {Number} b - the blue component, clipped to the range [0,255]
+ * @param {Number} a - the alpha component, clipped to the range [0,1] - this parameter is
* optional and defaults to 1
*/
</span><span class="jsdoc-var">Roo.lib.RGBColor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-comment">// store the alpha component after clipping it if necessary
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alpha </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? 1 : </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">)));
+ </span><span class="jsdoc-var">this.alpha </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? 1 : </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">)));
</span><span class="jsdoc-comment">// store the RGB components after clipping them if necessary
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.rgb </span><span class="jsdoc-syntax">=
{
</span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(255, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">)),
</span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(255, </span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">)),
};
</span><span class="jsdoc-comment">// initialise the HSV and HSL components to null
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-comment">/*
+
+ /*
* //private returns the HSV or HSL hue component of this RGBColor. The hue is in the
* range [0,360). The parameters are:
*
* maximum - the maximum of the RGB component values
* range - the range of the RGB component values
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">getHue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-comment">// check whether the range is zero
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">== 0){
- </span><span class="jsdoc-comment">// set the hue to zero (any hue is acceptable as the Color is grey)
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= 0;
+</span><span class="jsdoc-syntax">}
+</span><span class="jsdoc-comment">// this does an 'exteds'
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.RGBColor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.lib.Color</span><span class="jsdoc-syntax">, {
- }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-comment">// determine which of the components has the highest value and set the hue
- </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">getHue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">)
+ {
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-comment">// red has the highest value
- </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">:
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">rgb.g </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">) / </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">* 60;
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">< 0) </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">+= 360;
- </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-comment">// check whether the range is zero
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">== 0){
- </span><span class="jsdoc-comment">// green has the highest value
- </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">:
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">rgb.b </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">) / </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">* 60 + 120;
- </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-comment">// set the hue to zero (any hue is acceptable as the Color is grey)
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= 0;
- </span><span class="jsdoc-comment">// blue has the highest value
- </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">:
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">rgb.r </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">) / </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">* 60 + 240;
- </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+ }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
- }
+ </span><span class="jsdoc-comment">// determine which of the components has the highest value and set the hue
+ </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">){
- }
+ </span><span class="jsdoc-comment">// red has the highest value
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">rgb.g </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">) / </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">* 60;
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">< 0) </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">+= 360;
+ </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-comment">// return the hue
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">hue</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-comment">// green has the highest value
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">rgb.b </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">) / </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">* 60 + 120;
+ </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
- }
+ </span><span class="jsdoc-comment">// blue has the highest value
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hue </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">rgb.r </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">) / </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">* 60 + 240;
+ </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+
+ }
+
+ }
+
+ </span><span class="jsdoc-comment">// return the hue
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">hue</span><span class="jsdoc-syntax">;
+
+ },
</span><span class="jsdoc-comment">/* //private Calculates and stores the HSV components of this RGBColor so that they can
* be returned be the getHSV function.
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">calculateHSV</span><span class="jsdoc-syntax">(){
-
+ </span><span class="jsdoc-var">calculateHSV </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-comment">// get the maximum and range of the RGB component values
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-comment">// store the HSV components
- </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.hsv </span><span class="jsdoc-syntax">=
{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">getHue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">),
+ </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.getHue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">),
</span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">== 0 ? 0 : 100 * </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">/ </span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">),
</span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">/ 2.55
};
- }
+ },
</span><span class="jsdoc-comment">/* //private Calculates and stores the HSL components of this RGBColor so that they can
* be returned be the getHSL function.
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">calculateHSL</span><span class="jsdoc-syntax">(){
-
+ </span><span class="jsdoc-var">calculateHSL </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-comment">// get the maximum and range of the RGB component values
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">maximum </span><span class="jsdoc-syntax">/ 255 - </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">/ 510;
</span><span class="jsdoc-comment">// store the HSL components
- </span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.hsl </span><span class="jsdoc-syntax">=
{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">getHue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">),
+ </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.getHue</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">maximum</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">range</span><span class="jsdoc-syntax">),
</span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">== 0 ? 0 : </span><span class="jsdoc-var">range </span><span class="jsdoc-syntax">/ 2.55 / (</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">< 0.5 ? </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">* 2 : 2 - </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">* 2)),
</span><span class="jsdoc-string">'l' </span><span class="jsdoc-syntax">: 100 * </span><span class="jsdoc-var">l
</span><span class="jsdoc-syntax">};
}
- </span><span class="jsdoc-comment">/**
- * @returns the RGB and alpha components of this RGBColor as an object with r,
- * g, b, and a properties. r, g, and b are in the range [0,255] and a is in
- * the range [0,1].
- */
- </span><span class="jsdoc-var">this.getRGB </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// return the RGB components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
- </span><span class="jsdoc-comment">/**
- * @returns the HSV and alpha components of this RGBColor as an object with h,
- * s, v, and a properties. h is in the range [0,360), s and v are in the range
- * [0,100], and a is in the range [0,1].
- */
- </span><span class="jsdoc-var">this.getHSV </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// calculate the HSV components if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">calculateHSV</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-comment">// return the HSV components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.s</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.v</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
- </span><span class="jsdoc-comment">/**
- * @returns the HSL and alpha components of this RGBColor as an object with h,
- * s, l, and a properties. h is in the range [0,360), s and l are in the range
- * [0,100], and a is in the range [0,1].
- */
- </span><span class="jsdoc-var">this.getHSL </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// calculate the HSV components if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">calculateHSL</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-comment">// return the HSL components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.s</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'l' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.l</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
-}
-</span><span class="jsdoc-comment">// this does an 'exteds'
-</span><span class="jsdoc-var">Roo.lib.RGBColor.prototype </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.lib.Color</span><span class="jsdoc-syntax">();
-
+});
-</span><span class="jsdoc-comment">/*
+</span><span class="jsdoc-comment">/**
* @class Roo.lib.HSVColor
* @extends Roo.lib.Color
* Creates a Color specified in the HSV Color space, with an optional alpha
* component. The parameters are:
+ * @constructor
*
- * h - the hue component, wrapped to the range [0,360)
- * s - the saturation component, clipped to the range [0,100]
- * v - the value component, clipped to the range [0,100]
- * a - the alpha component, clipped to the range [0,1] - this parameter is
+ * @param {Number} h - the hue component, wrapped to the range [0,360)
+ * @param {Number} s - the saturation component, clipped to the range [0,100]
+ * @param {Number} v - the value component, clipped to the range [0,100]
+ * @param {Number} a - the alpha component, clipped to the range [0,1] - this parameter is
* optional and defaults to 1
*/
</span><span class="jsdoc-var">Roo.lib.HSVColor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-comment">// store the alpha component after clipping it if necessary
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alpha </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? 1 : </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">)));
+ </span><span class="jsdoc-var">this.alpha </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? 1 : </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">)));
</span><span class="jsdoc-comment">// store the HSV components after clipping or wrapping them if necessary
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.hsv </span><span class="jsdoc-syntax">=
{
</span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">% 360 + 360) % 360,
</span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(100, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">)),
};
</span><span class="jsdoc-comment">// initialise the RGB and HSL components to null
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-var">this.rgb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-var">this.hsl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
+}
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.HSVColor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.lib.Color</span><span class="jsdoc-syntax">, {
</span><span class="jsdoc-comment">/* Calculates and stores the RGB components of this HSVColor so that they can
* be returned be the getRGB function.
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">calculateRGB</span><span class="jsdoc-syntax">(){
-
+ </span><span class="jsdoc-var">calculateRGB</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">()
+ {
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hsv</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-comment">// check whether the saturation is zero
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsv.s </span><span class="jsdoc-syntax">== 0){
}
</span><span class="jsdoc-comment">// store the RGB components
- </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.rgb </span><span class="jsdoc-syntax">=
{
</span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">* 2.55,
</span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">* 2.55,
</span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">* 2.55
};
- }
+ },
</span><span class="jsdoc-comment">/* Calculates and stores the HSL components of this HSVColor so that they can
* be returned be the getHSL function.
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">calculateHSL</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-var">calculateHSL </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hsv</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-comment">// determine the lightness in the range [0,100]
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= (2 - </span><span class="jsdoc-var">hsv.s </span><span class="jsdoc-syntax">/ 100) * </span><span class="jsdoc-var">hsv.v </span><span class="jsdoc-syntax">/ 2;
</span><span class="jsdoc-comment">// store the HSL components
- </span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.hsl </span><span class="jsdoc-syntax">=
{
</span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.h</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.s </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">hsv.v </span><span class="jsdoc-syntax">/ (</span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">< 50 ? </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">* 2 : 200 - </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">* 2),
}
- </span><span class="jsdoc-comment">/**
- * @returns the RGB and alpha components of this HSVColor as an object with r,
- * g, b, and a properties. r, g, and b are in the range [0,255] and a is in
- * the range [0,1].
- */
- </span><span class="jsdoc-var">this.getRGB </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// calculate the RGB components if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">calculateRGB</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-comment">// return the RGB components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
- </span><span class="jsdoc-comment">/**
- * @returns the HSV and alpha components of this HSVColor as an object with h,
- * s, v, and a properties. h is in the range [0,360), s and v are in the range
- * [0,100], and a is in the range [0,1].
- */
- </span><span class="jsdoc-var">this.getHSV </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// return the HSV components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.s</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.v</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
- </span><span class="jsdoc-comment">/**
- * @returns the HSL and alpha components of this HSVColor as an object with h,
- * s, l, and a properties. h is in the range [0,360), s and l are in the range
- * [0,100], and a is in the range [0,1].
- */
- </span><span class="jsdoc-var">this.getHSL </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
- </span><span class="jsdoc-comment">// calculate the HSL components if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">calculateHSL</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-comment">// return the HSL components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.s</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'l' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.l</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
-}
-</span><span class="jsdoc-var">Roo.lib.HSVColor.prototype </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.lib.Color</span><span class="jsdoc-syntax">();
+});
</span><span class="jsdoc-comment">/**
* @class Roo.lib.HSLColor
* @extends Roo.lib.Color
- *
+ *
+ * @constructor
* Creates a Color specified in the HSL Color space, with an optional alpha
* component. The parameters are:
*
- * h - the hue component, wrapped to the range [0,360)
- * s - the saturation component, clipped to the range [0,100]
- * l - the lightness component, clipped to the range [0,100]
- * a - the alpha component, clipped to the range [0,1] - this parameter is
+ * @param {Number} h - the hue component, wrapped to the range [0,360)
+ * @param {Number} s - the saturation component, clipped to the range [0,100]
+ * @param {Number} l - the lightness component, clipped to the range [0,100]
+ * @param {Number} a - the alpha component, clipped to the range [0,1] - this parameter is
* optional and defaults to 1
*/
</span><span class="jsdoc-var">Roo.lib.HSLColor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-comment">// store the alpha component after clipping it if necessary
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">alpha </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? 1 : </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">)));
+ </span><span class="jsdoc-var">this.alpha </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">? 1 : </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(1, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">)));
</span><span class="jsdoc-comment">// store the HSL components after clipping or wrapping them if necessary
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsl </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.hsl </span><span class="jsdoc-syntax">=
{
</span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">% 360 + 360) % 360,
</span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">Math.max</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">Math.min</span><span class="jsdoc-syntax">(100, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">)),
};
</span><span class="jsdoc-comment">// initialise the RGB and HSV components to null
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
+</span><span class="jsdoc-syntax">}
+
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.lib.HSL</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.lib.Color</span><span class="jsdoc-syntax">, {
</span><span class="jsdoc-comment">/* Calculates and stores the RGB components of this HSLColor so that they can
* be returned be the getRGB function.
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">calculateRGB</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-var">calculateRGB</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(){
</span><span class="jsdoc-comment">// check whether the saturation is zero
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">== 0){
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hsl.s </span><span class="jsdoc-syntax">== 0){
</span><span class="jsdoc-comment">// store the RGB components representing the appropriate shade of grey
- </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.rgb </span><span class="jsdoc-syntax">=
{
- </span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">* 2.55,
- </span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">* 2.55,
- </span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">* 2.55
+ </span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">* 2.55,
+ </span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">* 2.55,
+ </span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">* 2.55
};
}</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
</span><span class="jsdoc-comment">// set some temporary values
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">< 50
- ? </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">* (1 + </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">/ 100)
- : </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">/ 100;
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">< 50
+ ? </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">* (1 + </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">/ 100)
+ : </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">* </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">/ 100;
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">= 2 * </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-comment">// initialise the RGB components
- </span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.rgb </span><span class="jsdoc-syntax">=
{
</span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">+ 120) / 60 % 6,
</span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">h </span><span class="jsdoc-syntax">/ 60,
};
</span><span class="jsdoc-comment">// loop over the RGB components
- </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">key </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">key </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-comment">// ensure that the property is not inherited from the root object
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">)){
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rgb.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">)){
</span><span class="jsdoc-comment">// set the component to its value in the range [0,100]
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] < 1){
- </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">) * </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">];
- }</span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] < 3){
- </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
- }</span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] < 4){
- </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">) * (4 - </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">]);
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] < 1){
+ </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">) * </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">];
+ }</span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] < 3){
+ </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">;
+ }</span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] < 4){
+ </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">) * (4 - </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">]);
}</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">q</span><span class="jsdoc-syntax">;
}
</span><span class="jsdoc-comment">// set the component to its value in the range [0,255]
- </span><span class="jsdoc-var">rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] *= 2.55;
+ </span><span class="jsdoc-var">this.rgb</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] *= 2.55;
}
}
- }
+ },
</span><span class="jsdoc-comment">/* Calculates and stores the HSV components of this HSLColor so that they can
* be returned be the getHSL function.
*/
- </span><span class="jsdoc-keyword">function </span><span class="jsdoc-var">calculateHSV</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-var">calculateHSV </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
</span><span class="jsdoc-comment">// set a temporary value
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hsl.s </span><span class="jsdoc-syntax">* (</span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">< 50 ? </span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">: 100 - </span><span class="jsdoc-var">hsl.l</span><span class="jsdoc-syntax">) / 100;
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.hsl.s </span><span class="jsdoc-syntax">* (</span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">< 50 ? </span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">: 100 - </span><span class="jsdoc-var">this.hsl.l</span><span class="jsdoc-syntax">) / 100;
</span><span class="jsdoc-comment">// store the HSV components
- </span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">=
+ </span><span class="jsdoc-var">this.hsv </span><span class="jsdoc-syntax">=
{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: 200 * </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">/ (</span><span class="jsdoc-var">hsl.l </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">),
- </span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">hsl.l
+ </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.hsl.h</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: 200 * </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">/ (</span><span class="jsdoc-var">this.hsl.l </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">),
+ </span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.hsl.l
</span><span class="jsdoc-syntax">};
</span><span class="jsdoc-comment">// correct a division-by-zero error
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsv.s</span><span class="jsdoc-syntax">)) </span><span class="jsdoc-var">hsv.s </span><span class="jsdoc-syntax">= 0;
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isNaN</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hsv.s</span><span class="jsdoc-syntax">)) </span><span class="jsdoc-var">this.hsv.s </span><span class="jsdoc-syntax">= 0;
}
- </span><span class="jsdoc-comment">/**
- * @returns the RGB and alpha components of this HSLColor as an object with r,
- * g, b, and a properties. r, g, and b are in the range [0,255] and a is in
- * the range [0,1].
- */
- </span><span class="jsdoc-var">this.getRGB </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// calculate the RGB components if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">rgb </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">calculateRGB</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-comment">// return the RGB components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'r' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.r</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'g' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.g</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'b' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">rgb.b</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
- </span><span class="jsdoc-comment">/**
- * @returns the HSV and alpha components of this HSLColor as an object with h,
- * s, v, and a properties. h is in the range [0,360), s and v are in the range
- * [0,100], and a is in the range [0,1].
- */
- </span><span class="jsdoc-var">this.getHSV </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// calculate the HSV components if necessary
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hsv </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">) </span><span class="jsdoc-var">calculateHSV</span><span class="jsdoc-syntax">();
-
- </span><span class="jsdoc-comment">// return the HSV components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.s</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'v' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsv.v</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
- </span><span class="jsdoc-comment">/**
- * @returns the HSL and alpha components of this HSLColor as an object with h,
- * s, l, and a properties. h is in the range [0,360), s and l are in the range
- * [0,100], and a is in the range [0,1].
- */
- </span><span class="jsdoc-var">this.getHSL </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
-
- </span><span class="jsdoc-comment">// return the HSL components
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
- </span><span class="jsdoc-string">'h' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.h</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'s' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.s</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'l' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">hsl.l</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'a' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">alpha
- </span><span class="jsdoc-syntax">};
-
- };
-
-}
-</span><span class="jsdoc-var">Roo.lib.HSLColor.prototype </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.lib.Color</span><span class="jsdoc-syntax">();</span></code></body></html>
\ No newline at end of file
+});
+</span></code></body></html>
\ No newline at end of file