From b3e173582d83dec39e84d3ea3a520b6d5b42a303 Mon Sep 17 00:00:00 2001 From: GiWoong Kim Date: Mon, 23 Dec 2013 17:21:27 +0900 Subject: [PATCH] skin: modified Key Window region setting SWT library has a problem for stretch image on Ubuntu. So, to avoid a this issue, I applied the different way(with no side effects) to create a frame image. Change-Id: I3411d9c4c45ffcf5bc591b45db2395cf94d40ddf Signed-off-by: GiWoong Kim --- .../layout/GeneralPurposeSkinComposer.java | 2 +- .../emulator/skin/menu/GeneralKeyWindow.java | 31 +++++++++++++------ 2 files changed, 22 insertions(+), 11 deletions(-) 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 ec2658217b..a9921d83c1 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 @@ -338,7 +338,7 @@ public class GeneralPurposeSkinComposer implements ISkinComposer { return displayBounds; } - public static Region getTrimmingRegion(Display display, Image image) { + private static Region getTrimmingRegion(Display display, Image image) { if (null == image) { return null; } diff --git a/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java b/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java index 2c44ec587a..c8b517425c 100644 --- a/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java +++ b/tizen/src/skin/client/src/org/tizen/emulator/skin/menu/GeneralKeyWindow.java @@ -49,6 +49,7 @@ import org.eclipse.swt.graphics.Region; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.tizen.emulator.skin.EmulatorSkin; import org.tizen.emulator.skin.comm.ICommunicator.KeyEventType; @@ -62,6 +63,7 @@ import org.tizen.emulator.skin.dbi.KeyMapType; import org.tizen.emulator.skin.image.GeneralKeyWindowImageRegistry; import org.tizen.emulator.skin.image.GeneralKeyWindowImageRegistry.GeneralKeyWindowImageName; import org.tizen.emulator.skin.layout.SkinPatches; +import org.tizen.emulator.skin.util.SkinUtil; import org.tizen.emulator.skin.util.SwtUtil; public class GeneralKeyWindow extends SkinWindow { @@ -162,7 +164,15 @@ public class GeneralKeyWindow extends SkinWindow { shell.setBackground(colorFrame); createContents(); - trimPatchedShell(shell, imageFrame); + + /* make window region */ + Region region = (SwtUtil.isLinuxPlatform() == false) ? + getTrimmingRegion(shell.getDisplay(), imageFrame) : /* color key */ + SkinUtil.getTrimmingRegion(imageFrame); + /* custom window shape */ + if (region != null) { + shell.setRegion(region); + } addKeyWindowListener(); @@ -296,22 +306,22 @@ public class GeneralKeyWindow extends SkinWindow { } } - public static void trimPatchedShell(Shell shell, Image image) { + private static Region getTrimmingRegion(Display display, Image image) { if (null == image) { - return; + return null; } - ImageData imageData = image.getImageData(); + ImageData imageData = image.getImageData(); int width = imageData.width; int height = imageData.height; Region region = new Region(); region.add(new Rectangle(0, 0, width, height)); - int r = shell.getDisplay().getSystemColor(SWT.COLOR_MAGENTA).getRed(); - int g = shell.getDisplay().getSystemColor(SWT.COLOR_MAGENTA).getGreen(); - int b = shell.getDisplay().getSystemColor(SWT.COLOR_MAGENTA).getBlue(); - int colorKey; + int r = display.getSystemColor(SWT.COLOR_MAGENTA).getRed(); + int g = display.getSystemColor(SWT.COLOR_MAGENTA).getGreen(); + int b = display.getSystemColor(SWT.COLOR_MAGENTA).getBlue(); + int colorKey = 0; if (SwtUtil.isWindowsPlatform()) { colorKey = r << 24 | g << 16 | b << 8; @@ -319,8 +329,9 @@ public class GeneralKeyWindow extends SkinWindow { colorKey = r << 16 | g << 8 | b; } + int j = 0; for (int i = 0; i < width; i++) { - for (int j = 0; j < height; j++) { + for (j = 0; j < height; j++) { int colorPixel = imageData.getPixel(i, j); if (colorPixel == colorKey /* magenta */) { region.subtract(i, j, 1, 1); @@ -328,7 +339,7 @@ public class GeneralKeyWindow extends SkinWindow { } } - shell.setRegion(region); + return region; } private void addKeyWindowListener() { -- 2.34.1