Listen for target resizes in ol.MapRenderer

This commit is contained in:
Tom Payne
2012-07-11 21:21:38 +02:00
parent 5c40e1d570
commit 7a4e3aa323

View File

@@ -2,6 +2,8 @@ goog.provide('ol.MapRenderer');
goog.require('goog.array');
goog.require('goog.events');
goog.require('goog.events.Event');
goog.require('goog.events.EventType');
goog.require('goog.object');
goog.require('ol.Array');
goog.require('ol.Camera');
@@ -38,6 +40,12 @@ ol.MapRenderer = function(target, opt_values) {
*/
this.target_ = target;
/**
* @private
* @type {goog.math.Size}
*/
this.size_ = new goog.math.Size(target.clientWidth, target.clientHeight);
/**
* @private
* @type {Array.<number>}
@@ -56,6 +64,9 @@ ol.MapRenderer = function(target, opt_values) {
*/
this.layerRenderers_ = {};
goog.events.listen(target, goog.events.EventType.RESIZE,
this.handleTargetResize, false, this);
goog.events.listen(
this, ol.Object.getChangedEventType(ol.MapRendererProperty.CAMERA),
this.handleCameraChanged, false, this);
@@ -105,6 +116,15 @@ ol.MapRenderer.prototype.getProjection = function() {
};
/**
* @protected
* @return {goog.math.Size} Size.
*/
ol.MapRenderer.prototype.getSize = function() {
return this.size_;
};
/**
* @return {HTMLDivElement} Target.
*/
@@ -219,6 +239,17 @@ ol.MapRenderer.prototype.handleLayersChanged = function() {
};
/**
* @param {goog.events.Event} event Event.
* @protected
*/
ol.MapRenderer.prototype.handleTargetResize = function(event) {
goog.asserts.assert(event.target == this.target_);
this.size_.width = this.target_.clientWidth;
this.size_.height = this.target_.clientHeight;
};
/**
* @param {ol.Camera} camera Camera.
*/