X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=auto_tests%2Ftests%2FDygraphOps.js;h=52f594385cbfb68c4b5b02d2ab4aa16194b85d14;hb=337a79bca0075c95592195ed4834e28a88afb508;hp=ad67b2a3ed0e2ed38e6c6d70313b73e17290c59d;hpb=9c8314318c3f11f2d3e26ce6e67f1ac07841ca93;p=dygraphs.git diff --git a/auto_tests/tests/DygraphOps.js b/auto_tests/tests/DygraphOps.js index ad67b2a..52f5943 100644 --- a/auto_tests/tests/DygraphOps.js +++ b/auto_tests/tests/DygraphOps.js @@ -44,7 +44,14 @@ DygraphOps.defaultEvent_ = { relatedTarget : null }; -DygraphOps.createEvent_ = function(command, custom) { +/** + * Create an event. Sets default event values except for special ones + * overridden by the 'custom' parameter. + * + * @param command the command to create. + * @param custom an associative array of event attributes and their new values. + */ +DygraphOps.createEvent = function(command, custom) { var copy = function(from, to) { if (from != null) { @@ -79,66 +86,77 @@ DygraphOps.createEvent_ = function(command, custom) { e.button, e.relatedTarget); return event; -} +}; + +/** + * Dispatch an event onto the graph's canvas. + */ +DygraphOps.dispatchCanvasEvent = function(g, event) { + g.canvas_.dispatchEvent(event); +}; DygraphOps.dispatchDoubleClick = function(g, custom) { var opts = { type : 'dblclick', detail : 2 }; - var event = DygraphOps.createEvent_(opts, custom); - g.canvas_.dispatchEvent(event); + var event = DygraphOps.createEvent(opts, custom); + DygraphOps.dispatchCanvasEvent(g, event); }; -DygraphOps.dispatchMouseDown_Point = function(g, x, y, custom) { - var pageX = Dygraph.findPosX(g.canvas_) + x; - var pageY = Dygraph.findPosY(g.canvas_) + y; +/* + * Create an 'opts' argument which can be passed to createEvent that contains + * type, screenX, screenY, clientX, clientY. + */ +DygraphOps.createOptsForPoint_ = function(g, type, x, y) { + var pos = Dygraph.findPos(g.canvas_); + var pageX = pos.x + x; + var pageY = pos.y + y; - var opts = { - type : 'mousedown', - detail : 1, + return { + type : type, screenX : pageX, screenY : pageY, clientX : pageX, clientY : pageY, }; +}; - var event = DygraphOps.createEvent_(opts, custom); - g.canvas_.dispatchEvent(event); -} +DygraphOps.dispatchMouseDown_Point = function(g, x, y, custom) { + var opts = DygraphOps.createOptsForPoint_(g, 'mousedown', x, y); + opts.detail = 1; + var event = DygraphOps.createEvent(opts, custom); + DygraphOps.dispatchCanvasEvent(g, event); +}; DygraphOps.dispatchMouseMove_Point = function(g, x, y, custom) { - var pageX = Dygraph.findPosX(g.canvas_) + x; - var pageY = Dygraph.findPosY(g.canvas_) + y; - - var opts = { - type : 'mousemove', - screenX : pageX, - screenY : pageY, - clientX : pageX, - clientY : pageY, - }; - - var event = DygraphOps.createEvent_(opts, custom); - g.canvas_.dispatchEvent(event); + var opts = DygraphOps.createOptsForPoint_(g, 'mousemove', x, y); + var event = DygraphOps.createEvent(opts, custom); + DygraphOps.dispatchCanvasEvent(g, event); }; DygraphOps.dispatchMouseUp_Point = function(g, x, y, custom) { - var pageX = Dygraph.findPosX(g.canvas_) + x; - var pageY = Dygraph.findPosY(g.canvas_) + y; + var opts = DygraphOps.createOptsForPoint_(g, 'mouseup', x, y); + var event = DygraphOps.createEvent(opts, custom); + DygraphOps.dispatchCanvasEvent(g, event); +}; - var opts = { - type : 'mouseup', - screenX : pageX, - screenY : pageY, - clientX : pageX, - clientY : pageY, - }; +DygraphOps.dispatchMouseOver_Point = function(g, x, y, custom) { + var opts = DygraphOps.createOptsForPoint_(g, 'mouseover', x, y); + var event = DygraphOps.createEvent(opts, custom); + DygraphOps.dispatchCanvasEvent(g, event); +}; - var event = DygraphOps.createEvent_(opts, custom); - g.canvas_.dispatchEvent(event); +DygraphOps.dispatchMouseOut_Point = function(g, x, y, custom) { + var opts = DygraphOps.createOptsForPoint_(g, 'mouseout', x, y); + var event = DygraphOps.createEvent(opts, custom); + DygraphOps.dispatchCanvasEvent(g, event); }; +/** + * Dispatches a mouse down using the graph's data coordinate system. + * (The y value mapped to the first axis.) + */ DygraphOps.dispatchMouseDown = function(g, x, y, custom) { DygraphOps.dispatchMouseDown_Point( g, @@ -147,6 +165,10 @@ DygraphOps.dispatchMouseDown = function(g, x, y, custom) { custom); }; +/** + * Dispatches a mouse move using the graph's data coordinate system. + * (The y value mapped to the first axis.) + */ DygraphOps.dispatchMouseMove = function(g, x, y, custom) { DygraphOps.dispatchMouseMove_Point( g, @@ -155,6 +177,10 @@ DygraphOps.dispatchMouseMove = function(g, x, y, custom) { custom); }; +/** + * Dispatches a mouse up using the graph's data coordinate system. + * (The y value mapped to the first axis.) + */ DygraphOps.dispatchMouseUp = function(g, x, y, custom) { DygraphOps.dispatchMouseUp_Point( g, @@ -163,3 +189,27 @@ DygraphOps.dispatchMouseUp = function(g, x, y, custom) { custom); }; +/** + * Dispatches a mouse over using the graph's data coordinate system. + * (The y value mapped to the first axis.) + */ +DygraphOps.dispatchMouseOver = function(g, x, y, custom) { + DygraphOps.dispatchMouseOver_Point( + g, + g.toDomXCoord(x), + g.toDomYCoord(y), + custom); +}; + +/** + * Dispatches a mouse out using the graph's data coordinate system. + * (The y value mapped to the first axis.) + */ +DygraphOps.dispatchMouseOut = function(g, x, y, custom) { + DygraphOps.dispatchMouseOut_Point( + g, + g.toDomXCoord(x), + g.toDomYCoord(y), + custom); +}; +