v0.7.4b: refactored input event handling structure

This commit is contained in:
Evan Debenham
2019-07-25 19:50:35 -04:00
parent 2a523f2ea2
commit 05d7f354dd
36 changed files with 502 additions and 506 deletions
@@ -25,9 +25,7 @@ import java.util.LinkedList;
public class Signal<T> {
private LinkedList<Listener<T>> listeners = new LinkedList<Signal.Listener<T>>();
private boolean canceled;
private LinkedList<Listener<T>> listeners = new LinkedList<>();
private boolean stackMode;
@@ -70,13 +68,11 @@ public class Signal<T> {
@SuppressWarnings("unchecked")
Listener<T>[] list = listeners.toArray( new Listener[0] );
canceled = false;
for (Listener<T> listener : list) {
if (listeners.contains(listener)) {
listener.onSignal(t);
if (canceled) {
if (listener.onSignal(t)) {
return;
}
}
@@ -84,11 +80,8 @@ public class Signal<T> {
}
}
public void cancel() {
canceled = true;
}
public static interface Listener<T> {
public void onSignal( T t );
public interface Listener<T> {
//return true if the signal has been handled
boolean onSignal( T t );
}
}