rangeSelector.prototype.activate = function(dygraph) {
this.dygraph_ = dygraph;
- this.isUsingExcanvas_ = dygraph.isUsingExcanvas_;
if (this.getOption_('showRangeSelector')) {
this.createInterface_();
}
this.fgcanvas_ = null;
this.leftZoomHandle_ = null;
this.rightZoomHandle_ = null;
- this.iePanOverlay_ = null;
};
//------------------------------------------------------------------
*/
rangeSelector.prototype.createInterface_ = function() {
this.createCanvases_();
- if (this.isUsingExcanvas_) {
- this.createIEPanOverlay_();
- }
this.createZoomHandles_();
this.initInteraction_();
/**
* @private
- * Creates overlay divs for IE/Excanvas so that mouse events are handled properly.
- */
-rangeSelector.prototype.createIEPanOverlay_ = function() {
- this.iePanOverlay_ = document.createElement("div");
- this.iePanOverlay_.style.position = 'absolute';
- this.iePanOverlay_.style.backgroundColor = 'white';
- this.iePanOverlay_.style.filter = 'alpha(opacity=0)';
- this.iePanOverlay_.style.display = 'none';
- this.iePanOverlay_.style.cursor = 'move';
- this.fgcanvas_.appendChild(this.iePanOverlay_);
-};
-
-/**
- * @private
* Creates the zoom handle elements.
*/
rangeSelector.prototype.createZoomHandles_ = function() {
var handle = null;
var isZooming = false;
var isPanning = false;
- var dynamic = !this.isMobileDevice_ && !this.isUsingExcanvas_;
+ var dynamic = !this.isMobileDevice_;
// We cover iframes during mouse interactions. See comments in
// dygraph-utils.js for more info on why this is a good idea.
handle.style.left = (newPos - halfHandleWidth) + 'px';
self.drawInteractiveLayer_();
- // Zoom on the fly (if not using excanvas).
+ // Zoom on the fly.
if (dynamic) {
doZoom();
}
Dygraph.removeEvent(topElem, 'mouseup', onZoomEnd);
self.fgcanvas_.style.cursor = 'default';
- // If using excanvas, Zoom now.
+ // If on a slower device, zoom now.
if (!dynamic) {
doZoom();
}
};
isMouseInPanZone = function(e) {
- if (self.isUsingExcanvas_) {
- return e.srcElement == self.iePanOverlay_;
- } else {
- var rect = self.leftZoomHandle_.getBoundingClientRect();
- var leftHandleClientX = rect.left + rect.width/2;
- rect = self.rightZoomHandle_.getBoundingClientRect();
- var rightHandleClientX = rect.left + rect.width/2;
- return (e.clientX > leftHandleClientX && e.clientX < rightHandleClientX);
- }
+ var rect = self.leftZoomHandle_.getBoundingClientRect();
+ var leftHandleClientX = rect.left + rect.width/2;
+ rect = self.rightZoomHandle_.getBoundingClientRect();
+ var rightHandleClientX = rect.left + rect.width/2;
+ return (e.clientX > leftHandleClientX && e.clientX < rightHandleClientX);
};
onPanStart = function(e) {
self.rightZoomHandle_.style.left = (rightHandlePos - halfHandleWidth) + 'px';
self.drawInteractiveLayer_();
- // Do pan on the fly (if not using excanvas).
+ // Do pan on the fly.
if (dynamic) {
doPan();
}
isPanning = false;
Dygraph.removeEvent(topElem, 'mousemove', onPan);
Dygraph.removeEvent(topElem, 'mouseup', onPanEnd);
- // If using excanvas, do pan now.
+ // If on a slower device, do pan now.
if (!dynamic) {
doPan();
}
this.dygraph_.addAndTrackEvent(this.leftZoomHandle_, dragStartEvent, onZoomStart);
this.dygraph_.addAndTrackEvent(this.rightZoomHandle_, dragStartEvent, onZoomStart);
- if (this.isUsingExcanvas_) {
- this.dygraph_.addAndTrackEvent(this.iePanOverlay_, 'mousedown', onPanStart);
- } else {
- this.dygraph_.addAndTrackEvent(this.fgcanvas_, 'mousedown', onPanStart);
- this.dygraph_.addAndTrackEvent(this.fgcanvas_, 'mousemove', onCanvasHover);
- }
+ this.dygraph_.addAndTrackEvent(this.fgcanvas_, 'mousedown', onPanStart);
+ this.dygraph_.addAndTrackEvent(this.fgcanvas_, 'mousemove', onCanvasHover);
// Touch events
if (this.hasTouchInterface_) {
ctx.lineTo(width, height);
ctx.lineTo(width, margin);
ctx.stroke();
- if (this.iePanOverlay_) {
- this.iePanOverlay_.style.display = 'none';
- }
} else {
var leftHandleCanvasPos = Math.max(margin, zoomHandleStatus.leftHandlePos - this.canvasRect_.x);
var rightHandleCanvasPos = Math.min(width, zoomHandleStatus.rightHandlePos - this.canvasRect_.x);
ctx.lineTo(rightHandleCanvasPos, margin);
ctx.lineTo(width, margin);
ctx.stroke();
-
- if (this.isUsingExcanvas_) {
- this.iePanOverlay_.style.width = (rightHandleCanvasPos - leftHandleCanvasPos) + 'px';
- this.iePanOverlay_.style.left = leftHandleCanvasPos + 'px';
- this.iePanOverlay_.style.height = height + 'px';
- this.iePanOverlay_.style.display = 'inline';
- }
}
};