diff options
Diffstat (limited to 'src/demos/newt/TaskManagerTest2.java')
-rw-r--r-- | src/demos/newt/TaskManagerTest2.java | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/src/demos/newt/TaskManagerTest2.java b/src/demos/newt/TaskManagerTest2.java new file mode 100644 index 0000000..ab6fd47 --- /dev/null +++ b/src/demos/newt/TaskManagerTest2.java @@ -0,0 +1,142 @@ +package demos.newt; + +import javax.media.nativewindow.*; +import com.sun.javafx.newt.*; +import demos.newt.util.TaskToolWM; + +public class TaskManagerTest2 implements WindowListener, KeyListener, MouseListener +{ + public static void main(String[] args) + { + new TaskManagerTest2().run(); + } + + public void windowResized(WindowEvent e) { + System.err.println("windowResized "+e); + } + public void windowMoved(WindowEvent e) { + System.err.println("windowMoved "+e); + } + public void windowGainedFocus(WindowEvent e) { + System.err.println("windowGainedFocus "+e); + } + public void windowLostFocus(WindowEvent e) { + System.err.println("windowLostFocus "+e); + } + public void windowDestroyNotify(WindowEvent e) { + System.err.println("windowDestroyNotify "+e); + // stop running .. + System.err.println("Window Event Listener DestroyNotify send stop request - START"); + TaskToolWM.unregisterWindowEvent(e.getSource()); + System.err.println("Window Event Listener DestroyNotify send stop request - DONE"); + } + + public void keyPressed(KeyEvent e) { + System.err.println("keyPressed "+e); + if(e.getKeyChar()=='q') { + System.err.println("Key Event Listener 'q' - .."); + TaskToolWM.unregisterWindowEvent(e.getSource()); + } + } + public void keyReleased(KeyEvent e) { + System.err.println("keyReleased "+e); + } + public void keyTyped(KeyEvent e) { + System.err.println("keyTyped "+e); + } + public void mouseClicked(MouseEvent e) { + System.err.println("mouseClicked "+e); + } + public void mouseEntered(MouseEvent e) { + System.err.println("mouseEntered "+e); + } + public void mouseExited(MouseEvent e) { + System.err.println("mouseExited "+e); + } + public void mousePressed(MouseEvent e) { + System.err.println("mousePressed "+e); + } + public void mouseReleased(MouseEvent e) { + System.err.println("mouseReleased "+e); + } + public void mouseMoved(MouseEvent e) { + System.err.println("mouseMoved "+e); + } + public void mouseDragged(MouseEvent e) { + System.err.println("mouseDragged "+e); + } + public void mouseWheelMoved(MouseEvent e) { + System.err.println("mouseWheelMoved "+e); + } + + private class RenderThread implements Runnable { + Window window; + + public RenderThread(Window w) { + window = w; + } + public void run() { + if(null==window) { + return; + } + try { + // prolog - lock whatever you need + window.lockSurface(); + + // render(window.getSurfaceHandle()); + System.out.println("Render: "+window); + Thread.sleep(200); + } catch (Throwable t) { + // handle errors .. + t.printStackTrace(); + } finally { + // epilog - unlock locked stuff + window.unlockSurface(); + } + } + } + + void run() + { + try + { + + Capabilities caps = new Capabilities(); + caps.setRedBits(8); + caps.setGreenBits(8); + caps.setBlueBits(8); + //caps.setBackgroundOpaque(true); + + Display display = NewtFactory.createDisplay(null); + Screen screen = NewtFactory.createScreen(display, 0); + Window window = NewtFactory.createWindow(screen, caps); + window.setTitle("GlassPrism"); + window.setAutoDrawableClient(true); + window.setUndecorated(false); + window.setSize(256, 256); + window.addKeyListener(this); + window.addMouseListener(this); + + // let's get notified if window is closed + window.addWindowListener(this); + + window.setVisible(true); + + TaskToolWM.registerWindowEvent(window); + TaskToolWM.addRenderTask(window, new RenderThread(window)); + + System.out.println("Main - wait until finished"); + TaskToolWM.waitUntilWindowUnregistered(window); + System.out.println("Main - finished"); + + window.destroy(); + System.out.println("Main - window destroyed"); + TaskToolWM.exit(true); + } + catch (Throwable t) + { + t.printStackTrace(); + } + } +} + |