use of playn.tests.core.TestsGame.NToggle in project playn by threerings.
the class PointerMouseTouchTest method init.
@Override
public void init() {
float y = 20, x = 20;
preventDefault = new Toggle("Prevent Default");
graphics().rootLayer().addAt(preventDefault.layer, x, y);
x += preventDefault.layer.image().width() + 5;
capture = new Toggle("Capture");
graphics().rootLayer().addAt(capture.layer, x, y);
x += capture.layer.image().width() + 5;
propagate = new NToggle<String>("Propagation", "Off", "On", "On (stop)") {
@Override
public void set(int value) {
super.set(value);
platform().setPropagateEvents(value != 0);
}
};
graphics().rootLayer().addAt(propagate.layer, x, y);
y += propagate.layer.image().height() + 5;
x = 20;
float boxWidth = 300, boxHeight = 110;
final Box mouse = new Box("Mouse", 0xffff8080, boxWidth, boxHeight);
graphics().rootLayer().addAt(mouse.layer, x, y);
y += mouse.layer.height() + 5;
final Box pointer = new Box("Pointer", 0xff80ff80, boxWidth, boxHeight);
graphics().rootLayer().addAt(pointer.layer, x, y);
y += pointer.layer.height() + 5;
final Box touch = new Box("Touch", 0xff8080ff, boxWidth, boxHeight);
graphics().rootLayer().addAt(touch.layer, x, y);
y = mouse.layer.ty();
x += touch.layer.width() + 5;
// setup the logger and its layer
y += createLabel("Event Log", 0, x, y).height();
logger = new TextLogger(375, 15, logFormat);
logger.layer.setTranslation(x, y);
graphics().rootLayer().add(logger.layer);
y += logger.layer.height() + 5;
// setup the motion logger and its layer
y += createLabel("Motion Log", 0, x, y).height();
motionLabel = new TextMapper(375, 6, logFormat);
motionLabel.layer.setTranslation(x, y);
graphics().rootLayer().add(motionLabel.layer);
// add mouse layer listener
mouse.label.addListener(new Mouse.LayerListener() {
ImageLayer label = mouse.label;
@Override
public void onMouseDown(ButtonEvent event) {
_lstart = label.transform().translation();
_pstart = new Vector(event.x(), event.y());
label.setAlpha(0.5f);
modify(event);
logger.log(describe(event, "mouse down"));
}
@Override
public void onMouseDrag(MotionEvent event) {
Vector delta = new Vector(event.x(), event.y()).subtractLocal(_pstart);
label.setTranslation(_lstart.x + delta.x, _lstart.y + delta.y);
modify(event);
motionLabel.set("mouse drag", describe(event, ""));
}
@Override
public void onMouseUp(ButtonEvent event) {
label.setAlpha(1.0f);
modify(event);
logger.log(describe(event, "mouse up"));
}
@Override
public void onMouseMove(MotionEvent event) {
modify(event);
motionLabel.set("mouse move", describe(event, ""));
}
@Override
public void onMouseOver(MotionEvent event) {
modify(event);
logger.log(describe(event, "mouse over"));
}
@Override
public void onMouseOut(MotionEvent event) {
modify(event);
logger.log(describe(event, "mouse out"));
}
@Override
public void onMouseWheelScroll(WheelEvent event) {
modify(event);
logger.log(describe(event, "mouse wheel"));
}
protected Vector _lstart, _pstart;
});
// add mouse layer listener to parent
mouse.layer.addListener(new Mouse.LayerListener() {
@Override
public void onMouseDown(ButtonEvent event) {
logger.log(describe(event, "parent mouse down"));
}
@Override
public void onMouseDrag(MotionEvent event) {
motionLabel.set("parent mouse drag", describe(event, ""));
}
@Override
public void onMouseUp(ButtonEvent event) {
logger.log(describe(event, "parent mouse up"));
}
@Override
public void onMouseMove(MotionEvent event) {
motionLabel.set("parent mouse move", describe(event, ""));
}
@Override
public void onMouseOver(MotionEvent event) {
logger.log(describe(event, "parent mouse over"));
}
@Override
public void onMouseOut(MotionEvent event) {
logger.log(describe(event, "parent mouse out"));
}
@Override
public void onMouseWheelScroll(WheelEvent event) {
logger.log(describe(event, "parent mouse wheel"));
}
});
// add pointer layer listener
pointer.label.addListener(new Pointer.Listener() {
ImageLayer label = pointer.label;
@Override
public void onPointerStart(Event event) {
_lstart = label.transform().translation();
_pstart = new Vector(event.x(), event.y());
label.setAlpha(0.5f);
modify(event);
logger.log(describe(event, "pointer start"));
}
@Override
public void onPointerDrag(Event event) {
Vector delta = new Vector(event.x(), event.y()).subtractLocal(_pstart);
label.setTranslation(_lstart.x + delta.x, _lstart.y + delta.y);
modify(event);
motionLabel.set("pointer drag", describe(event, ""));
}
@Override
public void onPointerEnd(Event event) {
label.setAlpha(1.0f);
modify(event);
logger.log(describe(event, "pointer end"));
}
@Override
public void onPointerCancel(Event event) {
label.setAlpha(1.0f);
modify(event);
logger.log(describe(event, "pointer cancel"));
}
protected Vector _lstart, _pstart;
});
// add pointer listener for parent layer
pointer.layer.addListener(new Pointer.Listener() {
double start;
@Override
public void onPointerStart(Event event) {
logger.log(describe(event, "parent pointer start"));
start = event.time();
}
@Override
public void onPointerDrag(Event event) {
motionLabel.set("parent pointer drag", describe(event, ""));
if (capture.value() && event.time() - start > 2000) {
event.capture();
}
}
@Override
public void onPointerEnd(Event event) {
logger.log(describe(event, "parent pointer end"));
}
@Override
public void onPointerCancel(Event event) {
logger.log(describe(event, "parent pointer cancel"));
}
});
// add touch layer listener
touch.label.addListener(new Touch.LayerListener() {
ImageLayer label = touch.label;
@Override
public void onTouchStart(Touch.Event event) {
_lstart = label.transform().translation();
_pstart = new Vector(event.x(), event.y());
label.setAlpha(0.5f);
modify(event);
logger.log(describe(event, "touch start"));
}
@Override
public void onTouchMove(Touch.Event event) {
Vector delta = new Vector(event.x(), event.y()).subtractLocal(_pstart);
label.setTranslation(_lstart.x + delta.x, _lstart.y + delta.y);
modify(event);
motionLabel.set("touch move", describe(event, ""));
}
@Override
public void onTouchEnd(Touch.Event event) {
label.setAlpha(1.0f);
modify(event);
logger.log(describe(event, "touch end"));
}
@Override
public void onTouchCancel(Touch.Event event) {
label.setAlpha(1.0f);
modify(event);
logger.log(describe(event, "touch cancel"));
}
protected Vector _lstart, _pstart;
});
// add touch parent layer listener
touch.layer.addListener(new Touch.LayerListener() {
@Override
public void onTouchStart(Touch.Event event) {
logger.log(describe(event, "parent touch start"));
}
@Override
public void onTouchMove(Touch.Event event) {
motionLabel.set("parent touch move", describe(event, ""));
}
@Override
public void onTouchEnd(Touch.Event event) {
logger.log(describe(event, "parent touch end"));
}
@Override
public void onTouchCancel(Touch.Event event) {
logger.log(describe(event, "parent touch cancel"));
}
});
}
Aggregations