diff options
Diffstat (limited to 'misc/openlayers/lib/Rico')
-rw-r--r-- | misc/openlayers/lib/Rico/Color.js | 253 | ||||
-rw-r--r-- | misc/openlayers/lib/Rico/Corner.js | 339 | ||||
-rw-r--r-- | misc/openlayers/lib/Rico/license.js | 19 |
3 files changed, 0 insertions, 611 deletions
diff --git a/misc/openlayers/lib/Rico/Color.js b/misc/openlayers/lib/Rico/Color.js deleted file mode 100644 index 7d9ab6f..0000000 --- a/misc/openlayers/lib/Rico/Color.js +++ /dev/null @@ -1,253 +0,0 @@ -/** - * @requires Rico/license.js - * @requires OpenLayers/Console.js - * @requires OpenLayers/BaseTypes/Class.js - * @requires OpenLayers/BaseTypes/Element.js - */ - - -/* - * This file has been edited substantially from the Rico-released version by - * the OpenLayers development team. - */ - -OpenLayers.Console.warn("OpenLayers.Rico is deprecated"); - -OpenLayers.Rico = OpenLayers.Rico || {}; -OpenLayers.Rico.Color = OpenLayers.Class({ - - initialize: function(red, green, blue) { - this.rgb = { r: red, g : green, b : blue }; - }, - - setRed: function(r) { - this.rgb.r = r; - }, - - setGreen: function(g) { - this.rgb.g = g; - }, - - setBlue: function(b) { - this.rgb.b = b; - }, - - setHue: function(h) { - - // get an HSB model, and set the new hue... - var hsb = this.asHSB(); - hsb.h = h; - - // convert back to RGB... - this.rgb = OpenLayers.Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b); - }, - - setSaturation: function(s) { - // get an HSB model, and set the new hue... - var hsb = this.asHSB(); - hsb.s = s; - - // convert back to RGB and set values... - this.rgb = OpenLayers.Rico.Color.HSBtoRGB(hsb.h, hsb.s, hsb.b); - }, - - setBrightness: function(b) { - // get an HSB model, and set the new hue... - var hsb = this.asHSB(); - hsb.b = b; - - // convert back to RGB and set values... - this.rgb = OpenLayers.Rico.Color.HSBtoRGB( hsb.h, hsb.s, hsb.b ); - }, - - darken: function(percent) { - var hsb = this.asHSB(); - this.rgb = OpenLayers.Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.max(hsb.b - percent,0)); - }, - - brighten: function(percent) { - var hsb = this.asHSB(); - this.rgb = OpenLayers.Rico.Color.HSBtoRGB(hsb.h, hsb.s, Math.min(hsb.b + percent,1)); - }, - - blend: function(other) { - this.rgb.r = Math.floor((this.rgb.r + other.rgb.r)/2); - this.rgb.g = Math.floor((this.rgb.g + other.rgb.g)/2); - this.rgb.b = Math.floor((this.rgb.b + other.rgb.b)/2); - }, - - isBright: function() { - var hsb = this.asHSB(); - return this.asHSB().b > 0.5; - }, - - isDark: function() { - return ! this.isBright(); - }, - - asRGB: function() { - return "rgb(" + this.rgb.r + "," + this.rgb.g + "," + this.rgb.b + ")"; - }, - - asHex: function() { - return "#" + this.rgb.r.toColorPart() + this.rgb.g.toColorPart() + this.rgb.b.toColorPart(); - }, - - asHSB: function() { - return OpenLayers.Rico.Color.RGBtoHSB(this.rgb.r, this.rgb.g, this.rgb.b); - }, - - toString: function() { - return this.asHex(); - } - -}); - -OpenLayers.Rico.Color.createFromHex = function(hexCode) { - if(hexCode.length==4) { - var shortHexCode = hexCode; - var hexCode = '#'; - for(var i=1;i<4;i++) { - hexCode += (shortHexCode.charAt(i) + -shortHexCode.charAt(i)); - } - } - if ( hexCode.indexOf('#') == 0 ) { - hexCode = hexCode.substring(1); - } - var red = hexCode.substring(0,2); - var green = hexCode.substring(2,4); - var blue = hexCode.substring(4,6); - return new OpenLayers.Rico.Color( parseInt(red,16), parseInt(green,16), parseInt(blue,16) ); -}; - -/** - * Factory method for creating a color from the background of - * an HTML element. - */ -OpenLayers.Rico.Color.createColorFromBackground = function(elem) { - - var actualColor = - OpenLayers.Element.getStyle(OpenLayers.Util.getElement(elem), - "backgroundColor"); - - if ( actualColor == "transparent" && elem.parentNode ) { - return OpenLayers.Rico.Color.createColorFromBackground(elem.parentNode); - } - if ( actualColor == null ) { - return new OpenLayers.Rico.Color(255,255,255); - } - if ( actualColor.indexOf("rgb(") == 0 ) { - var colors = actualColor.substring(4, actualColor.length - 1 ); - var colorArray = colors.split(","); - return new OpenLayers.Rico.Color( parseInt( colorArray[0] ), - parseInt( colorArray[1] ), - parseInt( colorArray[2] ) ); - - } - else if ( actualColor.indexOf("#") == 0 ) { - return OpenLayers.Rico.Color.createFromHex(actualColor); - } - else { - return new OpenLayers.Rico.Color(255,255,255); - } -}; - -OpenLayers.Rico.Color.HSBtoRGB = function(hue, saturation, brightness) { - - var red = 0; - var green = 0; - var blue = 0; - - if (saturation == 0) { - red = parseInt(brightness * 255.0 + 0.5); - green = red; - blue = red; - } - else { - var h = (hue - Math.floor(hue)) * 6.0; - var f = h - Math.floor(h); - var p = brightness * (1.0 - saturation); - var q = brightness * (1.0 - saturation * f); - var t = brightness * (1.0 - (saturation * (1.0 - f))); - - switch (parseInt(h)) { - case 0: - red = (brightness * 255.0 + 0.5); - green = (t * 255.0 + 0.5); - blue = (p * 255.0 + 0.5); - break; - case 1: - red = (q * 255.0 + 0.5); - green = (brightness * 255.0 + 0.5); - blue = (p * 255.0 + 0.5); - break; - case 2: - red = (p * 255.0 + 0.5); - green = (brightness * 255.0 + 0.5); - blue = (t * 255.0 + 0.5); - break; - case 3: - red = (p * 255.0 + 0.5); - green = (q * 255.0 + 0.5); - blue = (brightness * 255.0 + 0.5); - break; - case 4: - red = (t * 255.0 + 0.5); - green = (p * 255.0 + 0.5); - blue = (brightness * 255.0 + 0.5); - break; - case 5: - red = (brightness * 255.0 + 0.5); - green = (p * 255.0 + 0.5); - blue = (q * 255.0 + 0.5); - break; - } - } - - return { r : parseInt(red), g : parseInt(green) , b : parseInt(blue) }; -}; - -OpenLayers.Rico.Color.RGBtoHSB = function(r, g, b) { - - var hue; - var saturation; - var brightness; - - var cmax = (r > g) ? r : g; - if (b > cmax) { - cmax = b; - } - var cmin = (r < g) ? r : g; - if (b < cmin) { - cmin = b; - } - brightness = cmax / 255.0; - if (cmax != 0) { - saturation = (cmax - cmin)/cmax; - } else { - saturation = 0; - } - if (saturation == 0) { - hue = 0; - } else { - var redc = (cmax - r)/(cmax - cmin); - var greenc = (cmax - g)/(cmax - cmin); - var bluec = (cmax - b)/(cmax - cmin); - - if (r == cmax) { - hue = bluec - greenc; - } else if (g == cmax) { - hue = 2.0 + redc - bluec; - } else { - hue = 4.0 + greenc - redc; - } - hue = hue / 6.0; - if (hue < 0) { - hue = hue + 1.0; - } - } - - return { h : hue, s : saturation, b : brightness }; -}; - diff --git a/misc/openlayers/lib/Rico/Corner.js b/misc/openlayers/lib/Rico/Corner.js deleted file mode 100644 index e5479e5..0000000 --- a/misc/openlayers/lib/Rico/Corner.js +++ /dev/null @@ -1,339 +0,0 @@ -/** - * @requires OpenLayers/Console.js - * @requires Rico/Color.js - */ - - -/* - * This file has been edited substantially from the Rico-released - * version by the OpenLayers development team. - * - * Copyright 2005 Sabre Airline Solutions - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the - * License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the * License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or - * implied. See the License for the specific language governing - * permissions * and limitations under the License. - * - */ - -OpenLayers.Console.warn("OpenLayers.Rico is deprecated"); - -OpenLayers.Rico = OpenLayers.Rico || {}; -OpenLayers.Rico.Corner = { - - round: function(e, options) { - e = OpenLayers.Util.getElement(e); - this._setOptions(options); - - var color = this.options.color; - if ( this.options.color == "fromElement" ) { - color = this._background(e); - } - var bgColor = this.options.bgColor; - if ( this.options.bgColor == "fromParent" ) { - bgColor = this._background(e.offsetParent); - } - this._roundCornersImpl(e, color, bgColor); - }, - - /** This is a helper function to change the background - * color of <div> that has had Rico rounded corners added. - * - * It seems we cannot just set the background color for the - * outer <div> so each <span> element used to create the - * corners must have its background color set individually. - * - * @param {DOM} theDiv - A child of the outer <div> that was - * supplied to the `round` method. - * - * @param {String} newColor - The new background color to use. - */ - changeColor: function(theDiv, newColor) { - - theDiv.style.backgroundColor = newColor; - - var spanElements = theDiv.parentNode.getElementsByTagName("span"); - - for (var currIdx = 0; currIdx < spanElements.length; currIdx++) { - spanElements[currIdx].style.backgroundColor = newColor; - } - }, - - - /** This is a helper function to change the background - * opacity of <div> that has had Rico rounded corners added. - * - * See changeColor (above) for algorithm explanation - * - * @param {DOM} theDiv A child of the outer <div> that was - * supplied to the `round` method. - * - * @param {int} newOpacity The new opacity to use (0-1). - */ - changeOpacity: function(theDiv, newOpacity) { - - var mozillaOpacity = newOpacity; - var ieOpacity = 'alpha(opacity=' + newOpacity * 100 + ')'; - - theDiv.style.opacity = mozillaOpacity; - theDiv.style.filter = ieOpacity; - - var spanElements = theDiv.parentNode.getElementsByTagName("span"); - - for (var currIdx = 0; currIdx < spanElements.length; currIdx++) { - spanElements[currIdx].style.opacity = mozillaOpacity; - spanElements[currIdx].style.filter = ieOpacity; - } - - }, - - /** this function takes care of redoing the rico cornering - * - * you can't just call updateRicoCorners() again and pass it a - * new options string. you have to first remove the divs that - * rico puts on top and below the content div. - * - * @param {DOM} theDiv - A child of the outer <div> that was - * supplied to the `round` method. - * - * @param {Object} options - list of options - */ - reRound: function(theDiv, options) { - - var topRico = theDiv.parentNode.childNodes[0]; - //theDiv would be theDiv.parentNode.childNodes[1] - var bottomRico = theDiv.parentNode.childNodes[2]; - - theDiv.parentNode.removeChild(topRico); - theDiv.parentNode.removeChild(bottomRico); - - this.round(theDiv.parentNode, options); - }, - - _roundCornersImpl: function(e, color, bgColor) { - if(this.options.border) { - this._renderBorder(e,bgColor); - } - if(this._isTopRounded()) { - this._roundTopCorners(e,color,bgColor); - } - if(this._isBottomRounded()) { - this._roundBottomCorners(e,color,bgColor); - } - }, - - _renderBorder: function(el,bgColor) { - var borderValue = "1px solid " + this._borderColor(bgColor); - var borderL = "border-left: " + borderValue; - var borderR = "border-right: " + borderValue; - var style = "style='" + borderL + ";" + borderR + "'"; - el.innerHTML = "<div " + style + ">" + el.innerHTML + "</div>"; - }, - - _roundTopCorners: function(el, color, bgColor) { - var corner = this._createCorner(bgColor); - for(var i=0 ; i < this.options.numSlices ; i++ ) { - corner.appendChild(this._createCornerSlice(color,bgColor,i,"top")); - } - el.style.paddingTop = 0; - el.insertBefore(corner,el.firstChild); - }, - - _roundBottomCorners: function(el, color, bgColor) { - var corner = this._createCorner(bgColor); - for(var i=(this.options.numSlices-1) ; i >= 0 ; i-- ) { - corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom")); - } - el.style.paddingBottom = 0; - el.appendChild(corner); - }, - - _createCorner: function(bgColor) { - var corner = document.createElement("div"); - corner.style.backgroundColor = (this._isTransparent() ? "transparent" : bgColor); - return corner; - }, - - _createCornerSlice: function(color,bgColor, n, position) { - var slice = document.createElement("span"); - - var inStyle = slice.style; - inStyle.backgroundColor = color; - inStyle.display = "block"; - inStyle.height = "1px"; - inStyle.overflow = "hidden"; - inStyle.fontSize = "1px"; - - var borderColor = this._borderColor(color,bgColor); - if ( this.options.border && n == 0 ) { - inStyle.borderTopStyle = "solid"; - inStyle.borderTopWidth = "1px"; - inStyle.borderLeftWidth = "0px"; - inStyle.borderRightWidth = "0px"; - inStyle.borderBottomWidth = "0px"; - inStyle.height = "0px"; // assumes css compliant box model - inStyle.borderColor = borderColor; - } - else if(borderColor) { - inStyle.borderColor = borderColor; - inStyle.borderStyle = "solid"; - inStyle.borderWidth = "0px 1px"; - } - - if ( !this.options.compact && (n == (this.options.numSlices-1)) ) { - inStyle.height = "2px"; - } - this._setMargin(slice, n, position); - this._setBorder(slice, n, position); - return slice; - }, - - _setOptions: function(options) { - this.options = { - corners : "all", - color : "fromElement", - bgColor : "fromParent", - blend : true, - border : false, - compact : false - }; - OpenLayers.Util.extend(this.options, options || {}); - - this.options.numSlices = this.options.compact ? 2 : 4; - if ( this._isTransparent() ) { - this.options.blend = false; - } - }, - - _whichSideTop: function() { - if ( this._hasString(this.options.corners, "all", "top") ) { - return ""; - } - if ( this.options.corners.indexOf("tl") >= 0 && this.options.corners.indexOf("tr") >= 0 ) { - return ""; - } - if (this.options.corners.indexOf("tl") >= 0) { - return "left"; - } else if (this.options.corners.indexOf("tr") >= 0) { - return "right"; - } - return ""; - }, - - _whichSideBottom: function() { - if ( this._hasString(this.options.corners, "all", "bottom") ) { - return ""; - } - if ( this.options.corners.indexOf("bl")>=0 && this.options.corners.indexOf("br")>=0 ) { - return ""; - } - - if(this.options.corners.indexOf("bl") >=0) { - return "left"; - } else if(this.options.corners.indexOf("br")>=0) { - return "right"; - } - return ""; - }, - - _borderColor : function(color,bgColor) { - if ( color == "transparent" ) { - return bgColor; - } else if ( this.options.border ) { - return this.options.border; - } else if ( this.options.blend ) { - return this._blend( bgColor, color ); - } else { - return ""; - } - }, - - - _setMargin: function(el, n, corners) { - var marginSize = this._marginSize(n); - var whichSide = corners == "top" ? this._whichSideTop() : this._whichSideBottom(); - - if ( whichSide == "left" ) { - el.style.marginLeft = marginSize + "px"; el.style.marginRight = "0px"; - } - else if ( whichSide == "right" ) { - el.style.marginRight = marginSize + "px"; el.style.marginLeft = "0px"; - } - else { - el.style.marginLeft = marginSize + "px"; el.style.marginRight = marginSize + "px"; - } - }, - - _setBorder: function(el,n,corners) { - var borderSize = this._borderSize(n); - var whichSide = corners == "top" ? this._whichSideTop() : this._whichSideBottom(); - if ( whichSide == "left" ) { - el.style.borderLeftWidth = borderSize + "px"; el.style.borderRightWidth = "0px"; - } - else if ( whichSide == "right" ) { - el.style.borderRightWidth = borderSize + "px"; el.style.borderLeftWidth = "0px"; - } - else { - el.style.borderLeftWidth = borderSize + "px"; el.style.borderRightWidth = borderSize + "px"; - } - if (this.options.border != false) { - el.style.borderLeftWidth = borderSize + "px"; el.style.borderRightWidth = borderSize + "px"; - } - }, - - _marginSize: function(n) { - if ( this._isTransparent() ) { - return 0; - } - var marginSizes = [ 5, 3, 2, 1 ]; - var blendedMarginSizes = [ 3, 2, 1, 0 ]; - var compactMarginSizes = [ 2, 1 ]; - var smBlendedMarginSizes = [ 1, 0 ]; - - if ( this.options.compact && this.options.blend ) { - return smBlendedMarginSizes[n]; - } else if ( this.options.compact ) { - return compactMarginSizes[n]; - } else if ( this.options.blend ) { - return blendedMarginSizes[n]; - } else { - return marginSizes[n]; - } - }, - - _borderSize: function(n) { - var transparentBorderSizes = [ 5, 3, 2, 1 ]; - var blendedBorderSizes = [ 2, 1, 1, 1 ]; - var compactBorderSizes = [ 1, 0 ]; - var actualBorderSizes = [ 0, 2, 0, 0 ]; - - if ( this.options.compact && (this.options.blend || this._isTransparent()) ) { - return 1; - } else if ( this.options.compact ) { - return compactBorderSizes[n]; - } else if ( this.options.blend ) { - return blendedBorderSizes[n]; - } else if ( this.options.border ) { - return actualBorderSizes[n]; - } else if ( this._isTransparent() ) { - return transparentBorderSizes[n]; - } - return 0; - }, - - _hasString: function(str) { for(var i=1 ; i<arguments.length ; i++) if (str.indexOf(arguments[i]) >= 0) { return true; } return false; }, - _blend: function(c1, c2) { var cc1 = OpenLayers.Rico.Color.createFromHex(c1); cc1.blend(OpenLayers.Rico.Color.createFromHex(c2)); return cc1; }, - _background: function(el) { try { return OpenLayers.Rico.Color.createColorFromBackground(el).asHex(); } catch(err) { return "#ffffff"; } }, - _isTransparent: function() { return this.options.color == "transparent"; }, - _isTopRounded: function() { return this._hasString(this.options.corners, "all", "top", "tl", "tr"); }, - _isBottomRounded: function() { return this._hasString(this.options.corners, "all", "bottom", "bl", "br"); }, - _hasSingleTextChild: function(el) { return el.childNodes.length == 1 && el.childNodes[0].nodeType == 3; } -}; diff --git a/misc/openlayers/lib/Rico/license.js b/misc/openlayers/lib/Rico/license.js deleted file mode 100644 index aad5cf3..0000000 --- a/misc/openlayers/lib/Rico/license.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * @license Apache 2 - * - * Contains portions of Rico <http://openrico.org/> - * - * Copyright 2005 Sabre Airline Solutions - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You - * may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ |