Skip to content

Commit 6836432

Browse files
authored
Merge pull request #15 from Sufaev/feature/mouse-tilt
Added secondary mouse button tilt support
2 parents faca0b3 + 0c3cf47 commit 6836432

2 files changed

Lines changed: 29 additions & 2 deletions

File tree

worldwind/src/main/java/gov/nasa/worldwind/BasicWorldWindowController.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import gov.nasa.worldwind.geom.LookAt;
1515
import gov.nasa.worldwind.gesture.GestureListener;
1616
import gov.nasa.worldwind.gesture.GestureRecognizer;
17+
import gov.nasa.worldwind.gesture.MousePanRecognizer;
1718
import gov.nasa.worldwind.gesture.PanRecognizer;
1819
import gov.nasa.worldwind.gesture.PinchRecognizer;
1920
import gov.nasa.worldwind.gesture.RotationRecognizer;
@@ -43,17 +44,21 @@ public class BasicWorldWindowController implements WorldWindowController, Gestur
4344

4445
protected GestureRecognizer tiltRecognizer = new PanRecognizer();
4546

47+
protected GestureRecognizer mouseTiltRecognizer = new MousePanRecognizer();
48+
4649
protected List<GestureRecognizer> allRecognizers = Arrays.asList(
47-
this.panRecognizer, this.pinchRecognizer, this.rotationRecognizer, this.tiltRecognizer);
50+
this.panRecognizer, this.pinchRecognizer, this.rotationRecognizer, this.tiltRecognizer, this.mouseTiltRecognizer);
4851

4952
public BasicWorldWindowController() {
5053
this.panRecognizer.addListener(this);
5154
this.pinchRecognizer.addListener(this);
5255
this.rotationRecognizer.addListener(this);
5356
this.tiltRecognizer.addListener(this);
57+
this.mouseTiltRecognizer.addListener(this);
5458

5559
((PanRecognizer) this.panRecognizer).setMaxNumberOfPointers(2);
5660
((PanRecognizer) this.tiltRecognizer).setMinNumberOfPointers(3); // TODO support for two-finger tilt gestures
61+
((MousePanRecognizer) this.mouseTiltRecognizer).setButtonState(MotionEvent.BUTTON_SECONDARY);
5762
}
5863

5964
public WorldWindow getWorldWindow() {
@@ -84,7 +89,7 @@ public void gestureStateChanged(MotionEvent event, GestureRecognizer recognizer)
8489
this.handlePinch(recognizer);
8590
} else if (recognizer == this.rotationRecognizer) {
8691
this.handleRotate(recognizer);
87-
} else if (recognizer == this.tiltRecognizer) {
92+
} else if (recognizer == this.tiltRecognizer || recognizer == this.mouseTiltRecognizer) {
8893
this.handleTilt(recognizer);
8994
}
9095
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package gov.nasa.worldwind.gesture;
2+
3+
import android.view.MotionEvent;
4+
5+
public class MousePanRecognizer extends PanRecognizer {
6+
7+
protected int buttonState = MotionEvent.BUTTON_PRIMARY;
8+
9+
public int getButtonState() {
10+
return buttonState;
11+
}
12+
13+
public void setButtonState(int buttonState) {
14+
this.buttonState = buttonState;
15+
}
16+
17+
@Override
18+
protected boolean shouldRecognize(MotionEvent event) {
19+
return super.shouldRecognize(event) && event.getButtonState() == buttonState;
20+
}
21+
22+
}

0 commit comments

Comments
 (0)