skin: create Control Panel contents
authorgiwoong.kim <giwoong.kim@samsung.com>
Mon, 22 Oct 2012 12:01:52 +0000 (21:01 +0900)
committergiwoong.kim <giwoong.kim@samsung.com>
Mon, 22 Oct 2012 12:01:52 +0000 (21:01 +0900)
I added HW key buttons through skin dbi file.

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/window/ControlPanel.java
tizen/src/skin/client/src/org/tizen/emulator/skin/window/SkinWindow.java

index 7ffd628..0dfbb04 100644 (file)
@@ -87,6 +87,7 @@ import org.tizen.emulator.skin.config.EmulatorConfig;
 import org.tizen.emulator.skin.config.EmulatorConfig.ArgsConstants;
 import org.tizen.emulator.skin.config.EmulatorConfig.SkinPropertiesConstants;
 import org.tizen.emulator.skin.dbi.ColorsType;
+import org.tizen.emulator.skin.dbi.KeyMapType;
 import org.tizen.emulator.skin.dbi.RgbType;
 import org.tizen.emulator.skin.dbi.RotationType;
 import org.tizen.emulator.skin.dialog.AboutDialog;
@@ -2150,8 +2151,11 @@ public class EmulatorSkin {
                                        return;
                                }
 
+                               RotationType rotation = SkinRotation.getRotation(currentRotationId);
+                               List<KeyMapType> keyMapList = rotation.getKeyMapList().getKeyMap();
+
                                try {
-                                       controlPanel = new ControlPanel(shell);
+                                       controlPanel = new ControlPanel(shell, communicator, keyMapList);
                                        controlPanel.open();
                                } finally {
                                        controlPanel = null;
index fd08674..ff84cce 100644 (file)
 
 package org.tizen.emulator.skin.window;
 
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Shell;
+import org.tizen.emulator.skin.comm.ICommunicator.KeyEventType;
+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.dbi.KeyMapType;
 
 public class ControlPanel extends SkinWindow {
+       private SocketCommunicator communicator;
+       private List<KeyMapType> keyMapList;
 
-       public ControlPanel(Shell parent) {
+       public ControlPanel(Shell parent,
+                       SocketCommunicator communicator, List<KeyMapType> keyMapList) {
                super(parent);
+
+               shell.setText("Control Panel");
+               this.keyMapList = keyMapList;
+               this.communicator = communicator;
+
+               createContents();
        }
 
        protected void createContents() {
+               shell.setLayout(new GridLayout(1, true));
+
+               if (keyMapList != null && keyMapList.isEmpty() == false) {
+                       for (KeyMapType keyEntry : keyMapList) {
+                               Button hardKeyButton = new Button(shell, SWT.FLAT);
+                               hardKeyButton.setText(keyEntry.getEventInfo().getKeyName());
+                               hardKeyButton.setToolTipText(keyEntry.getTooltip());
+
+                               hardKeyButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+
+                               final int keycode = keyEntry.getEventInfo().getKeyCode();
+                               hardKeyButton.addMouseListener(new MouseListener() {
+                                       @Override
+                                       public void mouseDown(MouseEvent e) {
+                                               KeyEventData keyEventData = new KeyEventData(
+                                                               KeyEventType.PRESSED.value(), keycode, 0, 0);
+                                               communicator.sendToQEMU(SendCommand.SEND_HARD_KEY_EVENT, keyEventData);
+                                       }
+
+                                       @Override
+                                       public void mouseUp(MouseEvent e) {
+                                               KeyEventData keyEventData = new KeyEventData(
+                                                               KeyEventType.RELEASED.value(), keycode, 0, 0);
+                                               communicator.sendToQEMU(SendCommand.SEND_HARD_KEY_EVENT, keyEventData);
+                                       }
+
+                                       @Override
+                                       public void mouseDoubleClick(MouseEvent e) {
+                                               /* do nothing */
+                                       }
+                               });
+                       }
+               }
+
        }
 }
index f1cd301..fcfd545 100644 (file)
@@ -46,9 +46,8 @@ public class SkinWindow {
        public SkinWindow(Shell parent) {
                this.shell = new Shell(Display.getDefault(),
                                SWT.CLOSE | SWT.TITLE | SWT.MIN | SWT.MAX);
-               this.parent = parent;
 
-               createContents();
+               this.parent = parent;
        }
 
        public Shell getShell() {
@@ -74,11 +73,8 @@ public class SkinWindow {
                }
        }
 
-       protected void createContents() {
-       }
-
        protected void setShellSize() {
-               shell.setSize(100, 300);
+               //shell.setSize(100, 300);
        }
 
        protected void setShellPosition() {