use of playn.core.Pointer.Event 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"));
}
});
}
use of playn.core.Pointer.Event in project playn by threerings.
the class TextTest method init.
@Override
public void init() {
row = new Rectangle(5, 5, 0, 0);
addToRow((style = new NToggle<Style>("Style", Style.PLAIN, Style.BOLD, Style.ITALIC, Style.BOLD_ITALIC)).layer);
addToRow((draw = new NToggle<String>("Draw", "Fill", "Stroke")).layer);
addToRow((effect = new NToggle<String>("Effect", "None", "ShadowUL", "ShadowLR", "Outline")).layer);
addToRow((wrap = new NToggle<Integer>("Wrap", 0, 20, 50, 100)).layer);
addToRow((align = new NToggle<TextBlock.Align>("Align", TextBlock.Align.LEFT, TextBlock.Align.CENTER, TextBlock.Align.RIGHT)).layer);
addToRow((font = new NToggle<String>("Font", "Times New Roman", "Helvetica")).layer);
class SetText extends Pointer.Adapter implements Callback<String> {
final ImageLayer layer = graphics().createImageLayer(TestsGame.makeButtonImage("Set Text"));
{
layer.addListener(this);
}
@Override
public void onPointerEnd(Event event) {
keyboard().getText(TextType.DEFAULT, "Test text", sample.replace("\n", "\\n"), this);
}
public void onSuccess(String result) {
if (result == null)
return;
// parse \n to allow testing line breaks
sample = result.replace("\\n", "\n");
update();
}
public void onFailure(Throwable cause) {
}
}
addToRow(new SetText().layer);
addToRow((lineBounds = new Toggle("Lines")).layer);
// test laying out the empty string
TextLayout layout = graphics().layoutText("", new TextFormat());
ImageLayer empty = graphics().createImageLayer(makeLabel("Empty string size " + layout.width() + "x" + layout.height()));
newRow();
addToRow(empty);
newRow();
addToRow((text = graphics().createImageLayer(makeTextImage())));
}
use of playn.core.Pointer.Event in project playn by threerings.
the class PointerMouseTouchTest method describe.
protected String describe(Events.Position event, String handler) {
String time = "@" + (int) (event.time() % 10000);
String pd = event.flags().getPreventDefault() ? "pd " : "";
String msg = time + " " + pd + handler + " (" + event.x() + "," + event.y() + ")";
if (event instanceof Pointer.Event) {
msg += " isTouch(" + ((Pointer.Event) event).isTouch() + ")";
}
if (event instanceof Mouse.ButtonEvent) {
msg += " button(" + ((Mouse.ButtonEvent) event).button() + ")";
}
if (event instanceof Mouse.MotionEvent) {
Mouse.MotionEvent me = (Mouse.MotionEvent) event;
msg += " d(" + me.dx() + "," + me.dy() + ")";
}
return msg;
}
Aggregations