skin: consider close event of key window
authorgiwoong.kim <giwoong.kim@samsung.com>
Wed, 12 Dec 2012 12:59:28 +0000 (21:59 +0900)
committergiwoong.kim <giwoong.kim@samsung.com>
Wed, 12 Dec 2012 12:59:28 +0000 (21:59 +0900)
handle the key window state when key window is
closed by OS close button.
And add a key window icon & key window title.

Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/window/ControlPanel.java

index 4e3586d5cacba88c3bdf5e083248071ef5bb5557..5a2b96e088b3d1d76c08620576b0a4c81526b8c2 100644 (file)
@@ -925,7 +925,7 @@ public class EmulatorSkin {
                }
 
                try {
-                       controlPanel = new ControlPanel(shell, colorPairTag,
+                       controlPanel = new ControlPanel(this, shell, colorPairTag,
                                        communicator, keyMapList);
                        SkinUtil.setTopMost(controlPanel.getShell(), isOnTop);
 
index 897cb1e6c685311d6c1308e8b70bff5079b30f72..2648e097470edcdacfe5a6ca29a82372c83eadbf 100644 (file)
@@ -158,7 +158,10 @@ public class GeneralPurposeSkinComposer implements ISkinComposer {
                        @Override
                        public void mouseDown(MouseEvent e) {
                                if (skin.getIsControlPanel() == true) {
-                                       skin.controlPanel.getShell().close();
+                                       if (skin.controlPanel != null) {
+                                               skin.controlPanel.getShell().close();
+                                       }
+
                                        skin.setIsControlPanel(false);
                                        skin.pairTagCanvas.setVisible(false);
                                } else {
index 81ccc7c8c9fb59c3afa1a5b3d88600d1c0d4218e..3d715b158a5c583d8c39a4e19ef60d93737c494b 100644 (file)
@@ -52,6 +52,7 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Shell;
+import org.tizen.emulator.skin.EmulatorSkin;
 import org.tizen.emulator.skin.comm.ICommunicator.KeyEventType;
 import org.tizen.emulator.skin.comm.ICommunicator.SendCommand;
 import org.tizen.emulator.skin.comm.sock.SocketCommunicator;
@@ -68,6 +69,7 @@ public class ControlPanel extends SkinWindow {
        private static final int BUTTON_DEFAULT_CNT = 4;
        private static final int BUTTON_VERTICAL_SPACING = 7;
 
+       private EmulatorSkin skin;
        private SkinPatches frameMaker;
        private Image imageNormal; /* ImageButton image */
        private Image imageHover; /* hovered ImageButton image */
@@ -86,10 +88,11 @@ public class ControlPanel extends SkinWindow {
        private boolean isGrabbedShell;
        private Point grabPosition;
 
-       public ControlPanel(Shell parent, Color colorPairTag,
+       public ControlPanel(EmulatorSkin skin, Shell parent, Color colorPairTag,
                        SocketCommunicator communicator, List<KeyMapType> keyMapList) {
                super(parent, SWT.RIGHT | SWT.CENTER);
 
+               this.skin = skin;
                this.shell = new Shell(Display.getDefault(), SWT.NO_TRIM | SWT.RESIZE);
                this.frameMaker = new SkinPatches(PATCH_IMAGES_PATH);
                this.colorPairTag = colorPairTag;
@@ -98,6 +101,9 @@ public class ControlPanel extends SkinWindow {
                this.communicator = communicator;
                this.grabPosition = new Point(0, 0);
 
+               shell.setText(parent.getText());
+               shell.setImage(parent.getImage());
+
                /* load image for HW key button */
                ClassLoader loader = this.getClass().getClassLoader();
                imageNormal = new Image(Display.getDefault(),
@@ -344,6 +350,12 @@ public class ControlPanel extends SkinWindow {
                        public void handleEvent(Event event) {
                                logger.info("Key Window is closed");
 
+                               if (skin.pairTagCanvas != null) {
+                                       skin.pairTagCanvas.setVisible(false);
+                               }
+                               skin.setIsControlPanel(false);
+                               skin.controlPanel = null;
+
                                if (null != shellPaintListener) {
                                        shell.removePaintListener(shellPaintListener);
                                }