| 7 (function($){var options={crosshair:{mode:null,color:"rgba(170, 0, 0, 0.80)",lin
eWidth:1}};function init(plot){var crosshair={x:-1,y:-1,locked:false};plot.setCr
osshair=function setCrosshair(pos){if(!pos)crosshair.x=-1;else{var o=plot.p2c(po
s);crosshair.x=Math.max(0,Math.min(o.left,plot.width()));crosshair.y=Math.max(0,
Math.min(o.top,plot.height()))}plot.triggerRedrawOverlay()};plot.clearCrosshair=
plot.setCrosshair;plot.lockCrosshair=function lockCrosshair(pos){if(pos)plot.set
Crosshair(pos);crosshair.locked=true};plot.unlockCrosshair=function unlockCrossh
air(){crosshair.locked=false};function onMouseOut(e){if(crosshair.locked)return;
if(crosshair.x!=-1){crosshair.x=-1;plot.triggerRedrawOverlay()}}function onMouse
Move(e){if(crosshair.locked)return;if(plot.getSelection&&plot.getSelection()){cr
osshair.x=-1;return}var offset=plot.offset();crosshair.x=Math.max(0,Math.min(e.p
ageX-offset.left,plot.width()));crosshair.y=Math.max(0,Math.min(e.pageY-offset.t
op,plot.height()));plot.triggerRedrawOverlay()}plot.hooks.bindEvents.push(functi
on(plot,eventHolder){if(!plot.getOptions().crosshair.mode)return;eventHolder.mou
seout(onMouseOut);eventHolder.mousemove(onMouseMove)});plot.hooks.drawOverlay.pu
sh(function(plot,ctx){var c=plot.getOptions().crosshair;if(!c.mode)return;var pl
otOffset=plot.getPlotOffset();ctx.save();ctx.translate(plotOffset.left,plotOffse
t.top);if(crosshair.x!=-1){var adj=plot.getOptions().crosshair.lineWidth%2?.5:0;
ctx.strokeStyle=c.color;ctx.lineWidth=c.lineWidth;ctx.lineJoin="round";ctx.begin
Path();if(c.mode.indexOf("x")!=-1){var drawX=Math.floor(crosshair.x)+adj;ctx.mov
eTo(drawX,0);ctx.lineTo(drawX,plot.height())}if(c.mode.indexOf("y")!=-1){var dra
wY=Math.floor(crosshair.y)+adj;ctx.moveTo(0,drawY);ctx.lineTo(plot.width(),drawY
)}ctx.stroke()}ctx.restore()});plot.hooks.shutdown.push(function(plot,eventHolde
r){eventHolder.unbind("mouseout",onMouseOut);eventHolder.unbind("mousemove",onMo
useMove)})}$.plot.plugins.push({init:init,options:options,name:"crosshair",versi
on:"1.0"})})(jQuery); |