skin: control the focus in general skin on linux
authorgiwoong.kim <giwoong.kim@samsung.com>
Mon, 14 Jan 2013 05:02:24 +0000 (14:02 +0900)
committergiwoong.kim <giwoong.kim@samsung.com>
Mon, 14 Jan 2013 05:19:59 +0000 (14:19 +0900)
Added focus listener to Key Window. And
sync up the focus between Key Window and Main
Window in general purpose skin on linux.

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/custom/KeyWindow.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java

index ac708a9564ea2fc0372a18a15fa96a23e9be54b2..f5eab8fb0cea6addbae51778c87084f9feac51e3 100644 (file)
@@ -236,6 +236,8 @@ public class EmulatorSkin {
                addShellListener(shell);
                addCanvasListener(shell, lcdCanvas);
 
+               setFocus();
+
                /* attach a menu */
                this.isOnKbd = false;
                setMenu();
@@ -470,8 +472,7 @@ public class EmulatorSkin {
                                logger.info("gain focus");
 
                                if (isOnTop == false && isKeyWindow == true) {
-                                       if (keyWindow != null &&
-                                                       keyWindow.getDockPosition() != SWT.NONE) {
+                                       if (keyWindow != null) {
                                                keyWindow.getShell().moveAbove(shell);
                                                shell.moveAbove(keyWindow.getShell());
                                        }
@@ -936,6 +937,9 @@ public class EmulatorSkin {
                }
        }
 
+       public void setFocus() {
+               lcdCanvas.setFocus();
+       }
 
        protected void openScreenShotWindow() {
                //TODO: abstract
index 5f0c31f0e7b562c607b6297c7393b64e84bc9580..49f297096e5499eb0becccb633b0fd7bb02abe91 100644 (file)
@@ -32,6 +32,8 @@ import java.util.List;
 
 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;
@@ -166,6 +168,21 @@ public class KeyWindow extends SkinWindow {
                        }
                });
 
+               pairTagCanvas.addFocusListener(new FocusListener() {
+                       @Override
+                       public void focusGained(FocusEvent event) {
+                               logger.info("gain focus");
+
+                               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));
@@ -181,10 +198,11 @@ public class KeyWindow extends SkinWindow {
                compositeGridLayout.verticalSpacing = BUTTON_VERTICAL_SPACING;
                compositeBase.setLayout(compositeGridLayout);
 
+               /* attach HW keys */
                if (keyMapList != null && keyMapList.isEmpty() == false) {
                        for (KeyMapType keyEntry : keyMapList) {
-                               CustomButton HWKeyButton = new CustomButton(compositeBase, SWT.NONE,
-                                               imageNormal, imageHover, imagePushed);
+                               CustomButton HWKeyButton = new CustomButton(compositeBase,
+                                               SWT.NO_FOCUS, imageNormal, imageHover, imagePushed);
                                HWKeyButton.setText(keyEntry.getEventInfo().getKeyName());
                                HWKeyButton.setToolTipText(keyEntry.getTooltip());
                                HWKeyButton.setBackground(colorFrame);
index 53d26f5277a6a18f4955da1fe6f0e846cd1a3cc4..86f461be9b928200e10133b9f45304671ff55c2d 100644 (file)
@@ -176,7 +176,7 @@ public class GeneralPurposeSkinComposer implements ISkinComposer {
                });
 
                /* make a pair tag circle */
-               skin.pairTagCanvas = new Canvas(shell, SWT.NONE);
+               skin.pairTagCanvas = new Canvas(shell, SWT.NO_FOCUS);
                skin.pairTagCanvas.setBackground(
                                new Color(shell.getDisplay(), new RGB(38, 38, 38)));