aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-06-11 00:14:35 +0200
committerSven Gothel <[email protected]>2010-06-11 00:14:35 +0200
commitc0ece5ebd634662f99f3217bb749e2c4795f9de6 (patch)
treeecf5a08e0b62cff0b00137ab2298e70afa846a68 /src/jogl/classes/com/jogamp
parent856a6e9ff524692bb4e2ac7b2f754bc7fee5f849 (diff)
NEWT Add: add<type>Listener(int index, <type>Listener l) ; get<type>Listener(int index) ; NEWTEvent attachments
NEWT Add: add<type>Listener(int index, <type>Listener l) ; get<type>Listener(int index) ; NEWTEvent attachments for listener to listener communication via object passing. This methodology is similar to the 'Atom' attachment of native systems. It is preferred to a 'consume()/isConsumed()' pattern, since it is less flexible and would 'endanger' system events. TODO: <type>Listener[] get<type>Listeners() doesn't work and was always buggy.
Diffstat (limited to 'src/jogl/classes/com/jogamp')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java b/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java
index 8cc12ca89..fcd662048 100644
--- a/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java
+++ b/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java
@@ -66,8 +66,15 @@ public class GLDrawableHelper {
}
public synchronized void addGLEventListener(GLEventListener listener) {
+ addGLEventListener(-1, listener);
+ }
+
+ public synchronized void addGLEventListener(int index, GLEventListener listener) {
+ if(0>index) {
+ index = listeners.size();
+ }
List newListeners = (List) ((ArrayList) listeners).clone();
- newListeners.add(listener);
+ newListeners.add(index, listener);
listeners = newListeners;
}