29package com.jogamp.newt.event.awt;
31import java.awt.Dimension;
33import com.jogamp.nativewindow.NativeSurfaceHolder;
35import jogamp.newt.awt.event.AWTNewtEventFactory;
39 implements java.awt.event.ComponentListener, java.awt.event.
WindowListener, java.awt.event.FocusListener
41 WindowClosingListener windowClosingListener;
44 super(newtListener, nsProxy);
47 public AWTWindowAdapter(
final com.jogamp.newt.event.WindowListener newtListener,
final com.jogamp.newt.Window newtProxy) {
48 super(newtListener, newtProxy);
61 final java.awt.Window win = getWindow(awtComponent);
62 awtComponent.addComponentListener(
this);
63 awtComponent.addFocusListener(
this);
64 if(
null != win &&
null == windowClosingListener ) {
65 windowClosingListener =
new WindowClosingListener();
66 win.addWindowListener(windowClosingListener);
68 if(awtComponent instanceof java.awt.Window) {
69 ((java.awt.Window)awtComponent).addWindowListener(
this);
75 final java.awt.Window win = getWindow(awtComponent);
76 if(
null != win &&
null != windowClosingListener ) {
77 win.removeWindowListener(windowClosingListener);
84 awtComponent.removeFocusListener(
this);
85 awtComponent.removeComponentListener(
this);
87 if(awtComponent instanceof java.awt.Window) {
88 ((java.awt.Window)awtComponent).removeWindowListener(
this);
93 static java.awt.Window getWindow(java.awt.Component comp) {
94 while(
null != comp && !(comp instanceof java.awt.Window) ) {
95 comp = comp.getParent();
97 return (java.awt.Window) comp;
101 public synchronized void focusGained(
final java.awt.event.FocusEvent e) {
105 System.err.println(
"AWT: focusGained: "+e+
" -> "+event);
107 if( EventProcRes.DISPATCH == processEvent(
false, event) ) {
108 ((com.jogamp.newt.event.WindowListener)newtListener).windowGainedFocus(event);
113 public synchronized void focusLost(
final java.awt.event.FocusEvent e) {
117 System.err.println(
"AWT: focusLost: "+e+
" -> "+event);
119 if( EventProcRes.DISPATCH == processEvent(
false, event) ) {
120 ((com.jogamp.newt.event.WindowListener)newtListener).windowLostFocus(event);
129 final java.awt.Component c = e.getComponent();
130 final java.awt.Dimension sz = c.getSize();
131 final java.awt.Insets insets;
132 final java.awt.Dimension sz2;
133 if(c instanceof java.awt.Container) {
134 insets = ((java.awt.Container)c).getInsets();
135 sz2 =
new Dimension(sz.width - insets.left - insets.right,
136 sz.height - insets.top - insets.bottom);
141 System.err.println(
"AWT: componentResized: "+sz+
" ( "+insets+
", "+sz2+
" ), "+e+
" -> "+event);
143 if( EventProcRes.DISPATCH == processEvent(
false, event) ) {
144 ((com.jogamp.newt.event.WindowListener)newtListener).windowResized(event);
153 System.err.println(
"AWT: componentMoved: "+e+
" -> "+event);
155 if( EventProcRes.DISPATCH == processEvent(
false, event) ) {
156 ((com.jogamp.newt.event.WindowListener)newtListener).windowMoved(event);
163 final java.awt.Component comp = e.getComponent();
165 System.err.println(
"AWT: componentShown: "+comp);
182 final java.awt.Component comp = e.getComponent();
184 System.err.println(
"AWT: componentHidden: "+comp);
202 if( EventProcRes.DISPATCH == processEvent(
false, event) ) {
203 ((com.jogamp.newt.event.WindowListener)newtListener).windowGainedFocus(event);
208 public synchronized void windowClosed(
final java.awt.event.WindowEvent e) { }
211 public synchronized void windowClosing(
final java.awt.event.WindowEvent e) { }
217 if( EventProcRes.DISPATCH == processEvent(
false, event) ) {
218 ((com.jogamp.newt.event.WindowListener)newtListener).windowLostFocus(event);
229 public synchronized void windowOpened(
final java.awt.event.WindowEvent e) { }
231 class WindowClosingListener
implements java.awt.event.
WindowListener {
233 public void windowClosing(
final java.awt.event.WindowEvent e) {
234 synchronized( AWTWindowAdapter.this ) {
237 if( EventProcRes.DISPATCH == processEvent(
true, event) ) {
238 ((com.jogamp.newt.event.WindowListener)newtListener).windowDestroyNotify(event);
243 public void windowClosed(
final java.awt.event.WindowEvent e) {
244 synchronized( AWTWindowAdapter.this ) {
247 if( EventProcRes.DISPATCH == processEvent(
true, event) ) {
248 ((com.jogamp.newt.event.WindowListener)newtListener).windowDestroyed(event);
262 public void windowOpened(
final java.awt.event.WindowEvent e) { }
NEWT Window events are provided for notification purposes ONLY.
Convenient adapter forwarding AWT events to NEWT via the event listener model.
static final boolean DEBUG_IMPLEMENTATION
synchronized void windowActivated(final java.awt.event.WindowEvent e)
synchronized AWTAdapter removeWindowClosingFrom(final java.awt.Component awtComponent)
synchronized void componentMoved(final java.awt.event.ComponentEvent e)
synchronized void focusGained(final java.awt.event.FocusEvent e)
AWTWindowAdapter(final com.jogamp.newt.event.WindowListener newtListener, final NativeSurfaceHolder nsProxy)
synchronized void componentHidden(final java.awt.event.ComponentEvent e)
synchronized void windowClosed(final java.awt.event.WindowEvent e)
synchronized void windowOpened(final java.awt.event.WindowEvent e)
synchronized void windowDeiconified(final java.awt.event.WindowEvent e)
synchronized void componentResized(final java.awt.event.ComponentEvent e)
AWTWindowAdapter(final com.jogamp.newt.event.WindowListener newtListener, final com.jogamp.newt.Window newtProxy)
synchronized void windowDeactivated(final java.awt.event.WindowEvent e)
AWTWindowAdapter(final com.jogamp.newt.Window downstream)
synchronized void windowClosing(final java.awt.event.WindowEvent e)
synchronized void focusLost(final java.awt.event.FocusEvent e)
synchronized AWTAdapter removeFrom(final java.awt.Component awtComponent)
synchronized void windowIconified(final java.awt.event.WindowEvent e)
synchronized void componentShown(final java.awt.event.ComponentEvent e)
synchronized AWTAdapter addTo(final java.awt.Component awtComponent)
Due to the fact that some NEWT com.jogamp.newt.event.NEWTEventListener are mapped to more than one ja...
Accessor interface for implementing classes with ownership of a NativeSurface via an is-a or has-a re...
NEWT WindowEvent listener.