+++ /dev/null
-/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full
- * text of the license. */
-/**
-* @class
-*/
-OpenLayers.Icon = Class.create();
-OpenLayers.Icon.prototype = {
-
- /** image url
- * @type String */
- url: null,
-
- /** @type OpenLayers.Size */
- size:null,
-
- /** distance in pixels to offset the image when being rendered
- * @type OpenLayers.Pixel */
- offset: null,
-
- /** Function to calculate the offset (based on the size)
- * @type OpenLayers.Pixel */
- calculateOffset: null,
-
- /** @type DOMElement */
- imageDiv: null,
-
- /** @type OpenLayers.Pixel */
- px: null,
-
- /**
- * @constructor
- *
- * @param {String} url
- * @param {OpenLayers.Size} size
- * @param {Function} calculateOffset
- */
- initialize: function(url, size, offset, calculateOffset) {
- this.url = url;
- this.size = (size) ? size : new OpenLayers.Size(20,20);
- this.offset = (offset) ? offset : new OpenLayers.Pixel(0,0);
- this.calculateOffset = calculateOffset;
-
- this.imageDiv = OpenLayers.Util.createAlphaImageDiv();
- },
-
- destroy: function() {
- this.imageDiv = null;
- },
-
- /**
- * @returns A fresh copy of the icon.
- * @type OpenLayers.Icon
- */
- clone: function() {
- return new OpenLayers.Icon(this.size, this.url, this.offset);
- },
-
- /**
- * @param {OpenLayers.Size} size
- */
- setSize: function(size) {
- if (size != null) {
- this.size = size;
- }
- this.draw();
- },
-
- /**
- * @param {OpenLayers.Pixel} px
- *
- * @return A new DOM Image of this icon set at the location passed-in
- * @type DOMElement
- */
- draw: function(px) {
- OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
- null,
- null,
- this.size,
- this.url,
- "absolute");
- this.moveTo(px);
- return this.imageDiv;
- },
-
- /**
- * @param {OpenLayers.Pixel} px
- */
- moveTo: function (px) {
- //if no px passed in, use stored location
- if (px != null) {
- this.px = px;
- }
-
- if ((this.px != null) && (this.imageDiv != null)) {
- if (this.calculateOffset) {
- this.offset = this.calculateOffset(this.size);
- }
- var offsetPx = this.px.offset(this.offset);
- OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, offsetPx);
- }
- },
-
- /** @final @type String */
- CLASS_NAME: "OpenLayers.Icon"
-};
\ No newline at end of file