add a 'changelayer' event that fires when a layer's visibility changes. listen for this in the layerswitcher

git-svn-id: http://svn.openlayers.org/trunk/openlayers@1050 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
euzuro
2006-08-02 16:08:09 +00:00
parent 443f28dee8
commit 620cebb79c
3 changed files with 13 additions and 7 deletions

View File

@@ -67,6 +67,7 @@ OpenLayers.Control.LayerSwitcher.prototype =
this.map.events.register("addlayer", this, this.redraw);
this.map.events.register("removelayer", this, this.redraw);
this.map.events.register("changelayer", this, this.redraw);
return this.redraw();
},

View File

@@ -168,11 +168,16 @@ OpenLayers.Layer.prototype = {
* @param {bool} visible
*/
setVisibility: function(visible) {
this.div.style.display = (visible) ? "block" : "none";
if ((visible) && (this.map != null)) {
var extent = this.map.getExtent();
if (extent != null) {
this.moveTo(this.map.getExtent());
if (visible != this.getVisibility()) {
this.div.style.display = (visible) ? "block" : "none";
if (this.map != null) {
if (visible) {
var extent = this.map.getExtent();
if (extent != null) {
this.moveTo(this.map.getExtent());
}
}
this.map.events.triggerEvent("changelayer");
}
}
},

View File

@@ -22,8 +22,8 @@ OpenLayers.Map.prototype = {
*
* @type Array */
EVENT_TYPES: [
"addlayer", "removelayer", "movestart", "move", "moveend",
"zoomend", "layerchanged", "popupopen", "popupclose",
"addlayer", "removelayer", "changelayer", "movestart", "move",
"moveend", "zoomend", "layerchanged", "popupopen", "popupclose",
"addmarker", "removemarker", "clearmarkers", "mouseover",
"mouseout", "mousemove", "dragstart", "drag", "dragend",
"changebaselayer"],