From ad4dfcc07d979620f5c61300bbc9387f343a29bb Mon Sep 17 00:00:00 2001 From: "giwoong.kim" Date: Mon, 22 Oct 2012 21:01:52 +0900 Subject: [PATCH] skin: create Control Panel contents I added HW key buttons through skin dbi file. Signed-off-by: GiWoong Kim --- .../src/org/tizen/emulator/skin/EmulatorSkin.java | 6 ++- .../tizen/emulator/skin/window/ControlPanel.java | 58 +++++++++++++++++++++- .../org/tizen/emulator/skin/window/SkinWindow.java | 8 +-- 3 files changed, 64 insertions(+), 8 deletions(-) diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java index 7ffd628..0dfbb04 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -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 keyMapList = rotation.getKeyMapList().getKeyMap(); + try { - controlPanel = new ControlPanel(shell); + controlPanel = new ControlPanel(shell, communicator, keyMapList); controlPanel.open(); } finally { controlPanel = null; diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/window/ControlPanel.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/window/ControlPanel.java index fd08674..ff84cce 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/window/ControlPanel.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/window/ControlPanel.java @@ -28,14 +28,70 @@ 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 keyMapList; - public ControlPanel(Shell parent) { + public ControlPanel(Shell parent, + SocketCommunicator communicator, List 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 */ + } + }); + } + } + } } diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/window/SkinWindow.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/window/SkinWindow.java index f1cd301..fcfd545 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/window/SkinWindow.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/window/SkinWindow.java @@ -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() { -- 2.7.4