/*
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.charting.themes.gradientGenerator"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.charting.themes.gradientGenerator"] = true;
dojo.provide("dojox.charting.themes.gradientGenerator");
dojo.require("dojox.charting.Theme");
(function(){
var gg = dojox.charting.themes.gradientGenerator;
gg.generateFills = function(colors, fillPattern, lumFrom, lumTo){
// summary:
// generates 2-color gradients using pure colors, a fill pattern, and two luminance values
// colors: Array:
// Array of colors to generate gradients for each.
// fillPattern: Object:
// Gradient fill descriptor which colors list will be generated.
// lumFrom: Number:
// Initial luminance value (0-100).
// lumTo: Number:
// Final luminance value (0-100).
var Theme = dojox.charting.Theme;
return dojo.map(colors, function(c){ // Array
return Theme.generateHslGradient(c, fillPattern, lumFrom, lumTo);
});
};
gg.updateFills = function(themes, fillPattern, lumFrom, lumTo){
// summary:
// transforms solid color fills into 2-color gradients using a fill pattern, and two luminance values
// themes: Array:
// Array of mini-themes (usually series themes or marker themes), which fill will be transformed.
// fillPattern: Object:
// Gradient fill descriptor which colors list will be generated.
// lumFrom: Number:
// Initial luminance value (0-100).
// lumTo: Number:
// Final luminance value (0-100).
var Theme = dojox.charting.Theme;
dojo.forEach(themes, function(t){
if(t.fill && !t.fill.type){
t.fill = Theme.generateHslGradient(t.fill, fillPattern, lumFrom, lumTo);
}
});
};
gg.generateMiniTheme = function(colors, fillPattern, lumFrom, lumTo, lumStroke){
// summary:
// generates mini-themes with 2-color gradients using colors, a fill pattern, and three luminance values
// colors: Array:
// Array of colors to generate gradients for each.
// fillPattern: Object:
// Gradient fill descriptor which colors list will be generated.
// lumFrom: Number:
// Initial luminance value (0-100).
// lumTo: Number:
// Final luminance value (0-100).
// lumStroke: Number:
// Stroke luminance value (0-100).
var Theme = dojox.charting.Theme;
return dojo.map(colors, function(c){ // Array
c = new dojox.color.Color(c);
return {
fill: Theme.generateHslGradient(c, fillPattern, lumFrom, lumTo),
stroke: {color: Theme.generateHslColor(c, lumStroke)}
}
});
};
gg.generateGradientByIntensity = function(color, intensityMap){
// summary:
// generates gradient colors using an intensity map
// color: dojo.Color:
// Color to use to generate gradients.
// intensityMap: Array:
// Array of tuples {o, i}, where o is a gradient offset (0-1),
// and i is an intensity (0-255).
color = new dojo.Color(color);
return dojo.map(intensityMap, function(stop){ // Array
var s = stop.i / 255;
return {
offset: stop.o,
color: new dojo.Color([color.r * s, color.g * s, color.b * s, color.a])
};
});
}
})();
}