import org.eclipse.swt.events.MouseWheelListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.ShellEvent;
+import org.eclipse.swt.events.ShellListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.tizen.emulator.skin.comm.ICommunicator.SendCommand;
import org.tizen.emulator.skin.comm.sock.SocketCommunicator;
import org.tizen.emulator.skin.comm.sock.data.BooleanData;
-import org.tizen.emulator.skin.comm.sock.data.KeyEventData;
import org.tizen.emulator.skin.comm.sock.data.DisplayStateData;
+import org.tizen.emulator.skin.comm.sock.data.KeyEventData;
import org.tizen.emulator.skin.comm.sock.data.MouseEventData;
import org.tizen.emulator.skin.config.EmulatorConfig;
import org.tizen.emulator.skin.config.EmulatorConfig.ArgsConstants;
public ScreenShotDialog screenShotDialog;
protected SocketCommunicator communicator;
- private Listener shellCloseListener;
+ private ShellListener shellListener;
private MenuDetectListener shellMenuDetectListener;
//private DragDetectListener canvasDragDetectListener;
currentState.setHoverColor(loadHoverColor());
/* added event handlers */
- addShellListener(shell);
+ addMainWindowListener(shell);
addCanvasListener(shell, lcdCanvas);
setFocus();
skinComposer.composerFinalize();
}
- private void addShellListener(final Shell shell) {
+ private void addMainWindowListener(final Shell shell) {
- shellCloseListener = new Listener() {
+ shellListener = new ShellListener() {
@Override
- public void handleEvent(Event event) {
+ public void shellClosed(ShellEvent event) {
+ logger.info("Main Window is closed");
if (isShutdownRequested) {
removeShellListeners();
communicator.sendToQEMU(SendCommand.CLOSE, null);
}
}
+ }
+
+ @Override
+ public void shellActivated(ShellEvent event) {
+ logger.info("activate");
+
+ if (isOnTop == false && isKeyWindow == true) {
+ if (keyWindow != null) {
+ keyWindow.getShell().moveAbove(shell);
+
+ if (keyWindow.getDockPosition() != SWT.NONE) {
+ shell.moveAbove(keyWindow.getShell());
+ }
+ }
+ }
+ }
+
+ @Override
+ public void shellDeactivated(ShellEvent arg0) {
+ //logger.info("deactivate");
+
+ /* do nothing */
+ }
+
+ @Override
+ public void shellDeiconified(ShellEvent arg0) {
+ /* do nothing */
+ }
+ @Override
+ public void shellIconified(ShellEvent arg0) {
+ /* do nothing */
}
};
- shell.addListener(SWT.Close, shellCloseListener);
+ shell.addShellListener(shellListener);
+ /* menu */
shellMenuDetectListener = new MenuDetectListener() {
@Override
public void menuDetected(MenuDetectEvent e) {
}
private void removeShellListeners() {
- if (null != shellCloseListener) {
- shell.removeListener(SWT.Close, shellCloseListener);
+ if (null != shellListener) {
+ shell.removeShellListener(shellListener);
}
if (null != shellMenuDetectListener) {
canvasFocusListener = new FocusListener() {
@Override
public void focusGained(FocusEvent event) {
- logger.info("gain focus");
+ //logger.info("gain focus");
- if (isOnTop == false && isKeyWindow == true) {
- if (keyWindow != null) {
- keyWindow.getShell().moveAbove(shell);
-
- if (keyWindow.getDockPosition() != SWT.NONE) {
- shell.moveAbove(keyWindow.getShell());
- }
- }
- }
+ /* do nothing */
}
@Override
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.ShellEvent;
+import org.eclipse.swt.events.ShellListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.tizen.emulator.skin.comm.ICommunicator.SendCommand;
import org.tizen.emulator.skin.comm.sock.SocketCommunicator;
import org.tizen.emulator.skin.comm.sock.data.KeyEventData;
+import org.tizen.emulator.skin.config.EmulatorConfig.SkinPropertiesConstants;
import org.tizen.emulator.skin.dbi.KeyMapType;
import org.tizen.emulator.skin.layout.SkinPatches;
import org.tizen.emulator.skin.util.SwtUtil;
private SocketCommunicator communicator;
private List<KeyMapType> keyMapList;
+ private ShellListener shellListener;
private PaintListener shellPaintListener;
private MouseMoveListener shellMouseMoveListener;
private MouseListener shellMouseListener;
- private Listener shellCloseListener;
private boolean isGrabbedShell;
private Point grabPosition;
}
});
- pairTagCanvas.addFocusListener(new FocusListener() {
- @Override
- public void focusGained(FocusEvent event) {
- logger.info("gain focus");
-
- if (SwtUtil.isMacPlatform() == false) { //TODO:
- shell.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- skin.setFocus();
- }
- });
- }
- }
-
- @Override
- public void focusLost(FocusEvent event) {
- logger.info("lost focus");
- }
- });
- pairTagCanvas.setFocus();
-
/* */
ScrolledComposite compositeScroll = new ScrolledComposite(shell, SWT.V_SCROLL);
compositeScroll.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1));
shell.addPaintListener(shellPaintListener);
+ shellListener = new ShellListener() {
+ @Override
+ public void shellClosed(ShellEvent event) {
+ logger.info("Key Window is closed");
+
+ if (skin.pairTagCanvas != null) {
+ skin.pairTagCanvas.setVisible(false);
+ }
+ skin.keyWindow = null;
+
+ if (null != shellPaintListener) {
+ shell.removePaintListener(shellPaintListener);
+ }
+
+ if (null != shellListener) {
+ shell.removeShellListener(shellListener);
+ }
+
+ if (null != shellMouseMoveListener) {
+ shell.removeMouseMoveListener(shellMouseMoveListener);
+ }
+
+ if (null != shellMouseListener) {
+ shell.removeMouseListener(shellMouseListener);
+ }
+
+ imageNormal.dispose();
+ imageHover.dispose();
+ imagePushed.dispose();
+ colorFrame.dispose();
+
+ frameMaker.freePatches();
+ }
+
+ @Override
+ public void shellActivated(ShellEvent event) {
+ logger.info("activate");
+
+ if (SwtUtil.isMacPlatform() == true) {
+ parent.moveAbove(shell);
+ } else {
+ shell.getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ parent.setActive();
+ }
+ });
+ }
+ }
+
+ @Override
+ public void shellDeactivated(ShellEvent arg0) {
+ logger.info("deactivate");
+
+ /* do nothing */
+ }
+
+ @Override
+ public void shellDeiconified(ShellEvent arg0) {
+ /* do nothing */
+ }
+
+ @Override
+ public void shellIconified(ShellEvent arg0) {
+ /* do nothing */
+ }
+ };
+
+ shell.addShellListener(shellListener);
+
shellMouseMoveListener = new MouseMoveListener() {
@Override
public void mouseMove(MouseEvent e) {
};
shell.addMouseListener(shellMouseListener);
-
- shellCloseListener = new Listener() {
- @Override
- public void handleEvent(Event event) {
- logger.info("Key Window is closed");
-
- if (skin.pairTagCanvas != null) {
- skin.pairTagCanvas.setVisible(false);
- }
- skin.keyWindow = null;
-
- if (null != shellPaintListener) {
- shell.removePaintListener(shellPaintListener);
- }
-
- if (null != shellMouseMoveListener) {
- shell.removeMouseMoveListener(shellMouseMoveListener);
- }
-
- if (null != shellMouseListener) {
- shell.removeMouseListener(shellMouseListener);
- }
-
- imageNormal.dispose();
- imageHover.dispose();
- imagePushed.dispose();
- colorFrame.dispose();
-
- frameMaker.freePatches();
- }
- };
-
- shell.addListener(SWT.Close, shellCloseListener);
}
public Color getPairTagColor() {