Adding scroll sequence and scroll support for the Navigation control.

This commit is contained in:
ahocevar
2012-06-22 19:51:35 +02:00
parent 6b8000d963
commit c72f803038
5 changed files with 73 additions and 7 deletions
+6 -2
View File
@@ -8,6 +8,10 @@ goog.require('goog.fx.Dragger.EventType');
/**
* Event sequence that provides a 'dragstart', 'drag' and 'dragend' events.
* Event objects of the 'drag' events have 'deltaX' and 'deltaY' values with
* the relative pixel movement since the previous 'drag' or 'dragstart' event.
*
* @constructor
* @param {ol.event.Events} target The Events instance that handles events.
* @implements {ol.event.ISequence}
@@ -34,8 +38,8 @@ ol.event.Drag = function(target) {
});
dragger.addEventListener(goog.fx.Dragger.EventType.DRAG, function(evt) {
evt.target = element;
evt.dx = evt.clientX - previousX;
evt.dy = evt.clientY - previousY;
evt.deltaX = evt.clientX - previousX;
evt.deltaY = evt.clientY - previousY;
previousX = evt.clientX;
previousY = evt.clientY;
target.triggerEvent(evt.type, evt);
+43
View File
@@ -0,0 +1,43 @@
goog.provide('ol.event.Scroll');
goog.require('ol.event.ISequence');
goog.require('ol.event');
goog.require('goog.events.MouseWheelHandler');
/**
* Event sequence that provides a 'scroll' event. Event objects have 'deltaX'
* and 'deltaY' values with the scroll delta since the previous 'scroll' event.
*
* @constructor
* @param {ol.event.Events} target The Events instance that handles events.
* @implements {ol.event.ISequence}
* @export
*/
ol.event.Scroll = function(target) {
var element = target.getElement(),
handler = new goog.events.MouseWheelHandler(element);
/**
* @private
* @type {goog.events.MouseWheelHandler}
*/
this.handler_ = handler;
goog.events.listen(handler,
goog.events.MouseWheelHandler.EventType.MOUSEWHEEL,
function(evt) {
evt.type = 'scroll';
evt.target = element;
target.triggerEvent(evt.type, evt);
}
);
};
/** @inheritDoc */
ol.event.Scroll.prototype.destroy = function() {
this.handler_.dispose();
};
ol.event.addSequenceProvider('scroll', ol.event.Scroll);