From 9bc0403c7fcf80deff5625e1dbb2b909051d1208 Mon Sep 17 00:00:00 2001 From: GiWoong Kim Date: Thu, 20 Feb 2014 12:22:17 +0900 Subject: [PATCH] skin: no need to create toggle button no need to create toggle button when HW key does not exist on General Purpose skin. & clean up some codes Change-Id: I3d04e488ef7b27b9550b5305b155e903bc81e97a Signed-off-by: GiWoong Kim --- .../org/tizen/emulator/skin/EmulatorSkin.java | 6 - .../layout/GeneralPurposeSkinComposer.java | 106 +++++++++++------- .../layout/ProfileSpecificSkinComposer.java | 8 +- 3 files changed, 72 insertions(+), 48 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 b5ec0c1785..6acf04c2dc 100755 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/EmulatorSkin.java @@ -269,14 +269,8 @@ public class EmulatorSkin { /* build a skin layout */ if (skinInfo.isGeneralPurposeSkin() == false) { skinComposer = new ProfileSpecificSkinComposer(config, this); - - ((ProfileSpecificSkinComposer) skinComposer) - .addProfileSpecificListener(shell); } else { /* general purpose skin */ skinComposer = new GeneralPurposeSkinComposer(config, this); - - ((GeneralPurposeSkinComposer) skinComposer) - .addGeneralPurposeListener(shell); } lcdCanvas = skinComposer.compose(displayCanvasStyle); diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java index 0443ccf299..637a47d155 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java @@ -1,7 +1,7 @@ /** * General-Purpose Skin Layout * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * Copyright (C) 2011 - 2014 Samsung Electronics Co., Ltd. All rights reserved. * * Contact: * GiWoong Kim @@ -28,6 +28,7 @@ package org.tizen.emulator.skin.layout; +import java.util.List; import java.util.logging.Logger; import org.eclipse.swt.SWT; @@ -55,6 +56,7 @@ import org.tizen.emulator.skin.custom.ColorTag; import org.tizen.emulator.skin.custom.CustomButton; import org.tizen.emulator.skin.custom.CustomProgressBar; import org.tizen.emulator.skin.custom.SkinWindow; +import org.tizen.emulator.skin.dbi.KeyMapType; import org.tizen.emulator.skin.image.GeneralSkinImageRegistry; import org.tizen.emulator.skin.image.GeneralSkinImageRegistry.GeneralSkinImageName; import org.tizen.emulator.skin.image.ImageRegistry.IconName; @@ -150,42 +152,14 @@ public class GeneralPurposeSkinComposer implements ISkinComposer { .getIcon(IconName.EMULATOR_TITLE)); } - /* load image for toggle button of key window */ - Image imageNormal = imageRegistry.getSkinImage( - GeneralSkinImageName.TOGGLE_BUTTON_NORMAL); - Image imageHover = imageRegistry.getSkinImage( - GeneralSkinImageName.TOGGLE_BUTTON_HOVER); - Image imagePushed = imageRegistry.getSkinImage( - GeneralSkinImageName.TOGGLE_BUTTON_PUSHED); - /* create a toggle button of key window */ - toggleButton = new CustomButton(shell, SWT.DRAW_TRANSPARENT | SWT.NO_FOCUS, - imageNormal, imageHover, imagePushed); - toggleButton.setBackground(backgroundColor); - - toggleButton.addMouseListener(new MouseListener() { - @Override - public void mouseDown(MouseEvent e) { - if (skin.isKeyWindow == true) { - skin.getKeyWindowKeeper().closeKeyWindow(); - skin.getKeyWindowKeeper().setRecentlyDocked( - KeyWindowKeeper.DEFAULT_DOCK_POSITION); - } else { - skin.getKeyWindowKeeper().openKeyWindow( - KeyWindowKeeper.DEFAULT_DOCK_POSITION, true); - } - } - - @Override - public void mouseUp(MouseEvent e) { - /* do nothing */ - } + List keyMapList = SkinUtil.getHWKeyMapList( + skin.getEmulatorSkinState().getCurrentRotationId()); - @Override - public void mouseDoubleClick(MouseEvent e) { - /* do nothing */ - } - }); + if (keyMapList.isEmpty() == false) { + toggleButton = createToggleButton(); + toggleButton.setBackground(backgroundColor); + } /* make a pair tag circle */ pairTag = new ColorTag(shell, SWT.NO_FOCUS, skin.getColorVM()); @@ -197,6 +171,16 @@ public class GeneralPurposeSkinComposer implements ISkinComposer { arrangeSkin(scale, rotationId); + if (currentState.getCurrentImage() == null) { + logger.severe("Failed to load initial skin image. Kill this skin process."); + SkinUtil.openMessage(shell, null, + "Failed to load Skin image file.", SWT.ICON_ERROR, config); + + EmulatorSkinMain.terminateImmediately(-1); + } + + addListeners(); + /* open the key window if key window menu item was enabled */ PopupMenu popupMenu = skin.getPopupMenu(); @@ -267,9 +251,13 @@ public class GeneralPurposeSkinComposer implements ISkinComposer { displayCanvas.setBounds(displayBounds); /* arrange the toggle button of key window */ - toggleButton.setBounds(displayBounds.x + displayBounds.width + 4, - displayBounds.y + ((displayBounds.height - toggleButton.getImageSize().y) / 2), - toggleButton.getImageSize().x, toggleButton.getImageSize().y); + if (toggleButton != null) { + int centerY = ((displayBounds.height - toggleButton.getImageSize().y) / 2); + + toggleButton.setBounds(displayBounds.x + displayBounds.width + 4, + displayBounds.y + centerY, + toggleButton.getImageSize().x, toggleButton.getImageSize().y); + } /* arrange the progress bar */ if (skin.bootingProgress != null) { @@ -395,7 +383,47 @@ public class GeneralPurposeSkinComposer implements ISkinComposer { }); } - public void addGeneralPurposeListener(final Shell shell) { + private CustomButton createToggleButton() { + /* load image for toggle button of key window */ + Image imageNormal = imageRegistry.getSkinImage( + GeneralSkinImageName.TOGGLE_BUTTON_NORMAL); + Image imageHover = imageRegistry.getSkinImage( + GeneralSkinImageName.TOGGLE_BUTTON_HOVER); + Image imagePushed = imageRegistry.getSkinImage( + GeneralSkinImageName.TOGGLE_BUTTON_PUSHED); + + CustomButton toggle = new CustomButton(shell, + SWT.DRAW_TRANSPARENT | SWT.NO_FOCUS, + imageNormal, imageHover, imagePushed); + + toggle.addMouseListener(new MouseListener() { + @Override + public void mouseDown(MouseEvent e) { + if (skin.isKeyWindow == true) { + skin.getKeyWindowKeeper().closeKeyWindow(); + skin.getKeyWindowKeeper().setRecentlyDocked( + KeyWindowKeeper.DEFAULT_DOCK_POSITION); + } else { + skin.getKeyWindowKeeper().openKeyWindow( + KeyWindowKeeper.DEFAULT_DOCK_POSITION, true); + } + } + + @Override + public void mouseUp(MouseEvent e) { + /* do nothing */ + } + + @Override + public void mouseDoubleClick(MouseEvent e) { + /* do nothing */ + } + }); + + return toggle; + } + + private void addListeners() { shellPaintListener = new PaintListener() { @Override public void paintControl(final PaintEvent e) { diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java index 3d387bfaea..5a85ff5fa1 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java @@ -1,7 +1,7 @@ /** * Profile-Specific Skin Layout * - * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * Copyright (C) 2011 - 2014 Samsung Electronics Co., Ltd. All rights reserved. * * Contact: * GiWoong Kim @@ -151,13 +151,15 @@ public class ProfileSpecificSkinComposer implements ISkinComposer { arrangeSkin(scale, rotationId); if (currentState.getCurrentImage() == null) { - logger.severe("Failed to load initial skin image file. Kill this skin process."); + logger.severe("Failed to load initial skin image. Kill this skin process."); SkinUtil.openMessage(shell, null, "Failed to load Skin image file.", SWT.ICON_ERROR, config); EmulatorSkinMain.terminateImmediately(-1); } + addListeners(); + /* open the key window if key window menu item was enabled */ PopupMenu popupMenu = skin.getPopupMenu(); @@ -344,7 +346,7 @@ public class ProfileSpecificSkinComposer implements ISkinComposer { /* do nothing */ } - public void addProfileSpecificListener(final Shell shell) { + private void addListeners() { shellPaintListener = new PaintListener() { @Override public void paintControl(final PaintEvent e) { -- 2.34.1