Added range_tests, which uses DygraphOps -- an API for pushing Dygraph-specific events.
[dygraphs.git] / auto_tests / tests / DygraphOps.js
CommitLineData
72a74f04
RK
1// Copyright (c) 2011 Google, Inc.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to deal
5// in the Software without restriction, including without limitation the rights
6// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7// copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19// THE SOFTWARE.
20
21
22/**
23 * @fileoverview Utility functions for Dygraphs.
24 *
25 * @author konigsberg@google.com (Robert Konigsberg)
26 */
27var DygraphOps = {};
28
29DygraphOps.dispatchDoubleClick = function(g, func) {
30 var evt = document.createEvent('MouseEvents');
31 evt.initMouseEvent(
32 'dblclick',
33 true, true, document.defaultView,
34 2, 0, 0, 0, 0,
35 false, false, false, false, 0, null);
36 if (func) {
37 func(evt);
38 }
39 g.canvas_.dispatchEvent(evt);
40};
41
42DygraphOps.dispatchMouseDown = function(g, x, y, func) {
43 var px = Dygraph.findPosX(g.canvas_);
44 var py = Dygraph.findPosY(g.canvas_);
45
46 var pageX = px + g.toDomXCoord(x);
47 var pageY = py + g.toDomYCoord(y);
48
49 var evt = document.createEvent('MouseEvents');
50 evt.initMouseEvent(
51 'mousedown',
52 true, true, document.defaultView,
53 1, pageX, pageY, pageX, pageY,
54 false, false, false, false, 0, null);
55 if (func) {
56 func(evt);
57 }
58 g.canvas_.dispatchEvent(evt);
59};
60
61DygraphOps.dispatchMouseMove = function(g, x, y, func) {
62 var px = Dygraph.findPosX(g.canvas_);
63 var py = Dygraph.findPosY(g.canvas_);
64
65 var pageX = px + g.toDomXCoord(x);
66 var pageY = py + g.toDomYCoord(y);
67
68 var evt = document.createEvent('MouseEvents');
69 evt.initMouseEvent(
70 'mousemove',
71 true, true, document.defaultView,
72 0, pageX, pageY, pageX, pageY,
73 false, false, false, false, 0, null);
74 if (func) {
75 func(evt);
76 }
77 g.canvas_.dispatchEvent(evt);
78};
79
80DygraphOps.dispatchMouseUp = function(g, x, y, func) {
81 var px = Dygraph.findPosX(g.canvas_);
82 var py = Dygraph.findPosY(g.canvas_);
83
84 var pageX = px + g.toDomXCoord(x);
85 var pageY = py + g.toDomYCoord(y);
86
87 var evt = document.createEvent('MouseEvents');
88 evt.initMouseEvent(
89 'mouseup',
90 true, true, document.defaultView,
91 0, pageX, pageY, pageX, pageY,
92 false, false, false, false, 0, null);
93 if (func) {
94 func(evt);
95 }
96 g.canvas_.dispatchEvent(evt);
97};