1 Clazz.declarePackage ("swingjs");
\r
2 Clazz.load (null, "swingjs.JSMouse", ["JU.V3", "java.awt.Toolkit", "java.awt.event.MouseEvent"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 this.isMouseDown = false;
\r
6 this.wheeling = false;
\r
7 this.xWhenPressed = 0;
\r
8 this.yWhenPressed = 0;
\r
9 this.modifiersWhenPressed10 = 0;
\r
10 Clazz.instantialize (this, arguments);
\r
11 }, swingjs, "JSMouse");
\r
12 Clazz.makeConstructor (c$,
\r
15 }, "swingjs.JSAppletPanel");
\r
16 Clazz.defineMethod (c$, "processEvent",
\r
17 function (id, x, y, modifiers, time) {
\r
18 if (id != -1) modifiers = swingjs.JSMouse.applyLeftMouse (modifiers);
\r
21 this.wheeled (time, x, modifiers);
\r
24 this.xWhenPressed = x;
\r
25 this.yWhenPressed = y;
\r
26 this.modifiersWhenPressed10 = modifiers;
\r
27 this.pressed (time, x, y, modifiers, false);
\r
30 this.dragged (time, x, y, modifiers);
\r
33 this.entry (time, x, y, false);
\r
36 this.entry (time, x, y, true);
\r
39 this.moved (time, x, y, modifiers);
\r
42 this.released (time, x, y, modifiers);
\r
43 if (x == this.xWhenPressed && y == this.yWhenPressed && modifiers == this.modifiersWhenPressed10) {
\r
44 this.clicked (time, x, y, modifiers, 1);
\r
50 }, "~N,~N,~N,~N,~N");
\r
51 Clazz.defineMethod (c$, "processTwoPointGesture",
\r
52 function (touches) {
\r
53 if (touches[0].length < 2) return;
\r
54 var t1 = touches[0];
\r
55 var t2 = touches[1];
\r
56 var t1first = t1[0];
\r
57 var t1last = t1[t2.length - 1];
\r
58 var x1first = t1first[0];
\r
59 var x1last = t1last[0];
\r
60 var dx1 = x1last - x1first;
\r
61 var y1first = t1first[1];
\r
62 var y1last = t1last[1];
\r
63 var dy1 = y1last - y1first;
\r
64 var v1 = JU.V3.new3 (dx1, dy1, 0);
\r
65 var d1 = v1.length ();
\r
66 var t2first = t2[0];
\r
67 var t2last = t2[t2.length - 1];
\r
68 var x2first = t2first[0];
\r
69 var x2last = t2last[0];
\r
70 var dx2 = x2last - x2first;
\r
71 var y2first = t2first[1];
\r
72 var y2last = t2last[1];
\r
73 var dy2 = y2last - y2first;
\r
74 var v2 = JU.V3.new3 (dx2, dy2, 0);
\r
75 var d2 = v2.length ();
\r
76 if (d1 < 1 || d2 < 1) return;
\r
79 var cos12 = (v1.dot (v2));
\r
81 var deltaX = Clazz.floatToInt (x1last - t1[t1.length - 2][0]);
\r
82 var deltaY = Clazz.floatToInt (y1last - t1[t1.length - 2][1]);
\r
83 this.translateXYBy (deltaX, deltaY);
\r
84 } else if (cos12 < -0.8) {
\r
85 v1 = JU.V3.new3 (x2first - x1first, y2first - y1first, 0);
\r
86 v2 = JU.V3.new3 (x2last - x1last, y2last - y1last, 0);
\r
87 var dx = v2.length () - v1.length ();
\r
88 this.wheeled (System.currentTimeMillis (), dx < 0 ? -1 : 1, 32);
\r
90 Clazz.defineMethod (c$, "translateXYBy",
\r
91 function (deltaX, deltaY) {
\r
93 Clazz.defineMethod (c$, "mouseClicked",
\r
95 this.clicked (e.getWhen (), e.getX (), e.getY (), e.getModifiers (), e.getClickCount ());
\r
96 }, "java.awt.event.MouseEvent");
\r
97 Clazz.defineMethod (c$, "mouseEntered",
\r
99 this.entry (e.getWhen (), e.getX (), e.getY (), false);
\r
100 }, "java.awt.event.MouseEvent");
\r
101 Clazz.defineMethod (c$, "mouseExited",
\r
103 this.entry (e.getWhen (), e.getX (), e.getY (), true);
\r
104 }, "java.awt.event.MouseEvent");
\r
105 Clazz.defineMethod (c$, "mousePressed",
\r
107 this.pressed (e.getWhen (), e.getX (), e.getY (), e.getModifiers (), e.isPopupTrigger ());
\r
108 }, "java.awt.event.MouseEvent");
\r
109 Clazz.defineMethod (c$, "mouseReleased",
\r
111 this.released (e.getWhen (), e.getX (), e.getY (), e.getModifiers ());
\r
112 }, "java.awt.event.MouseEvent");
\r
113 Clazz.defineMethod (c$, "mouseDragged",
\r
115 var modifiers = e.getModifiers ();
\r
116 if ((modifiers & 28) == 0) modifiers |= 16;
\r
117 this.dragged (e.getWhen (), e.getX (), e.getY (), modifiers);
\r
118 }, "java.awt.event.MouseEvent");
\r
119 Clazz.defineMethod (c$, "mouseMoved",
\r
121 this.moved (e.getWhen (), e.getX (), e.getY (), e.getModifiers ());
\r
122 }, "java.awt.event.MouseEvent");
\r
123 Clazz.defineMethod (c$, "mouseWheelMoved",
\r
126 this.wheeled (e.getWhen (), e.getWheelRotation (), e.getModifiers ());
\r
127 }, "java.awt.event.MouseWheelEvent");
\r
128 Clazz.defineMethod (c$, "entry",
\r
129 function (time, x, y, isExit) {
\r
130 this.wheeling = false;
\r
131 this.mouseEnterExit (time, x, y, isExit);
\r
133 Clazz.defineMethod (c$, "clicked",
\r
134 function (time, x, y, modifiers, clickCount) {
\r
135 this.mouseAction (500, time, x, y, 1, modifiers);
\r
136 }, "~N,~N,~N,~N,~N");
\r
137 Clazz.defineMethod (c$, "moved",
\r
138 function (time, x, y, modifiers) {
\r
139 if (this.isMouseDown) this.mouseAction (506, time, x, y, 0, swingjs.JSMouse.applyLeftMouse (modifiers));
\r
140 else this.mouseAction (503, time, x, y, 0, modifiers);
\r
142 Clazz.defineMethod (c$, "wheeled",
\r
143 function (time, rotation, modifiers) {
\r
144 this.wheeling = true;
\r
145 this.mouseAction (507, time, 0, rotation, 0, modifiers & -29 | 32);
\r
147 Clazz.defineMethod (c$, "pressed",
\r
148 function (time, x, y, modifiers, isPopupTrigger) {
\r
149 this.isMouseDown = true;
\r
150 this.wheeling = false;
\r
151 this.mouseAction (501, time, x, y, 0, modifiers);
\r
152 }, "~N,~N,~N,~N,~B");
\r
153 Clazz.defineMethod (c$, "released",
\r
154 function (time, x, y, modifiers) {
\r
155 this.isMouseDown = false;
\r
156 this.wheeling = false;
\r
157 this.mouseAction (502, time, x, y, 0, modifiers);
\r
159 Clazz.defineMethod (c$, "dragged",
\r
160 function (time, x, y, modifiers) {
\r
161 if (this.wheeling) return;
\r
162 if ((modifiers & 20) == 20) modifiers = modifiers & -5 | 2;
\r
163 this.mouseAction (506, time, x, y, 0, modifiers);
\r
165 c$.applyLeftMouse = Clazz.defineMethod (c$, "applyLeftMouse",
\r
166 function (modifiers) {
\r
167 return ((modifiers & 28) == 0) ? (modifiers | 16) : modifiers;
\r
169 Clazz.defineMethod (c$, "getButton",
\r
170 function (modifiers) {
\r
171 switch (modifiers & 28) {
\r
182 Clazz.defineMethod (c$, "mouseEnterExit",
\r
183 function (time, x, y, isExit) {
\r
185 Clazz.defineMethod (c$, "mouseAction",
\r
186 function (id, time, x, y, count, modifiers) {
\r
187 var popupTrigger = false;
\r
188 var button = this.getButton (modifiers);
\r
189 var source = this.ap.applet;
\r
190 var e = new java.awt.event.MouseEvent (source, id, time, modifiers, x, y, x, y, count, popupTrigger, button);
\r
191 java.awt.Toolkit.getEventQueue ().postEvent (e);
\r
192 }, "~N,~N,~N,~N,~N,~N");
\r
193 Clazz.defineStatics (c$,
\r
199 "BUTTON_MASK", 28);
\r