/**
- *
+ * General Key Window
*
* Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
*
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;
import org.tizen.emulator.skin.comm.sock.SocketCommunicator;
import org.tizen.emulator.skin.comm.sock.data.KeyEventData;
import org.tizen.emulator.skin.dbi.KeyMapType;
-import org.tizen.emulator.skin.image.ImageRegistry.KeyWindowImageName;
+import org.tizen.emulator.skin.image.GeneralKeyWindowImageRegistry;
+import org.tizen.emulator.skin.image.GeneralKeyWindowImageRegistry.KeyWindowImageName;
import org.tizen.emulator.skin.layout.SkinPatches;
import org.tizen.emulator.skin.util.SwtUtil;
private Color colorFrame;
private SocketCommunicator communicator;
+ private GeneralKeyWindowImageRegistry imageRegistry;
private List<KeyMapType> keyMapList;
private ShellListener shellListener;
super(parent, SWT.RIGHT | SWT.CENTER);
this.skin = skin;
- this.shell = new Shell(parent,
- SWT.NO_TRIM | SWT.RESIZE | SWT.TOOL);
+ if (SwtUtil.isMacPlatform() == false) {
+ this.shell = new Shell(parent,
+ SWT.NO_TRIM | SWT.RESIZE | SWT.TOOL);
+ } else {
+ this.shell = new Shell(parent.getDisplay(),
+ SWT.NO_TRIM | SWT.RESIZE | SWT.TOOL);
+ }
+
+ this.imageRegistry = new GeneralKeyWindowImageRegistry();
this.frameMaker = new SkinPatches(PATCH_IMAGES_PATH);
this.keyMapList = keyMapList; //TODO: null
shell.setImage(parent.getImage());
/* load image for HW key button */
- imageNormal = skin.getImageRegistry().getKeyWindowImageData(
+ imageNormal = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.KEYBUTTON_NORMAL);
- imageHover = skin.getImageRegistry().getKeyWindowImageData(
+ imageHover = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.KEYBUTTON_HOVER);
- imagePushed = skin.getImageRegistry().getKeyWindowImageData(
+ imagePushed = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.KEYBUTTON_PUSHED);
/* calculate the key window size */
/* make a region of HW keys */
if (cntHiddenButton > 0) {
/* added custom scrollbar */
-
Image imagesScrollArrowUp[] = new Image[3];
Image imagesScrollArrowDown[] = new Image[3];
- imagesScrollArrowUp[0] = skin.getImageRegistry().getKeyWindowImageData(
+ imagesScrollArrowUp[0] = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_UPBUTTON_NORMAL);
- imagesScrollArrowUp[1] = skin.getImageRegistry().getKeyWindowImageData(
+ imagesScrollArrowUp[1] = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_UPBUTTON_HOVER);
- imagesScrollArrowUp[2] = skin.getImageRegistry().getKeyWindowImageData(
+ imagesScrollArrowUp[2] = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_UPBUTTON_PUSHED);
- imagesScrollArrowDown[0] = skin.getImageRegistry().getKeyWindowImageData(
+ imagesScrollArrowDown[0] = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_DOWNBUTTON_NORMAL);
- imagesScrollArrowDown[1] = skin.getImageRegistry().getKeyWindowImageData(
+ imagesScrollArrowDown[1] = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_DOWNBUTTON_HOVER);
- imagesScrollArrowDown[2] = skin.getImageRegistry().getKeyWindowImageData(
+ imagesScrollArrowDown[2] = imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_DOWNBUTTON_PUSHED);
CustomScrolledComposite compositeScroll =
new CustomScrolledComposite(shell, SWT.NONE,
imagesScrollArrowUp, imagesScrollArrowDown,
- skin.getImageRegistry().getKeyWindowImageData(
+ imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_THUMB),
- skin.getImageRegistry().getKeyWindowImageData(
+ imageRegistry.getKeyWindowImageData(
KeyWindowImageName.SCROLL_SHAFT));
compositeScroll.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1));
compositeScroll.setContent(compositeBase);
compositeScroll.setExpandHorizontal(true);
compositeScroll.setExpandVertical(true);
- compositeScroll.setMinSize(compositeBase.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+
+ compositeScroll.setMinSize(
+ compositeBase.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}
}
public void shellClosed(ShellEvent event) {
logger.info("Key Window is closed");
- if (skin.pairTag != null) {
- skin.pairTag.setVisible(false);
- }
-
- if (null != shellPaintListener) {
- shell.removePaintListener(shellPaintListener);
- }
-
- if (null != shellListener) {
- shell.removeShellListener(shellListener);
- }
-
- if (null != shellMouseMoveListener) {
- shell.removeMouseMoveListener(shellMouseMoveListener);
- }
-
- if (null != shellMouseListener) {
- shell.removeMouseListener(shellMouseListener);
- }
-
- colorFrame.dispose();
-
- frameMaker.freePatches();
+ dispose();
}
@Override
shell.addMouseListener(shellMouseListener);
}
+
+ private void dispose() {
+ if (skin.pairTag != null) {
+ skin.pairTag.setVisible(false);
+ }
+
+ if (null != shellPaintListener) {
+ shell.removePaintListener(shellPaintListener);
+ }
+
+ if (null != shellListener) {
+ shell.removeShellListener(shellListener);
+ }
+
+ if (null != shellMouseMoveListener) {
+ shell.removeMouseMoveListener(shellMouseMoveListener);
+ }
+
+ if (null != shellMouseListener) {
+ shell.removeMouseListener(shellMouseListener);
+ }
+
+ colorFrame.dispose();
+
+ frameMaker.freePatches();
+ imageRegistry.dispose();
+ }
}
--- /dev/null
+/**
+ * Image Resource Management For General Key Window
+ *
+ * Copyright (C) 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * GiWoong Kim <giwoong.kim@samsung.com>
+ * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.emulator.skin.image;
+
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.tizen.emulator.skin.log.SkinLogger;
+import org.tizen.emulator.skin.util.IOUtil;
+
+public class GeneralKeyWindowImageRegistry {
+ public static final String KEYWINDOW_FOLDER = "key-window";
+
+ private static Logger logger = SkinLogger.getSkinLogger(
+ GeneralKeyWindowImageRegistry.class).getLogger();
+
+ public enum KeyWindowImageName {
+ KEYBUTTON_NORMAL("keybutton_nml.png"),
+ KEYBUTTON_HOVER("keybutton_hover.png"),
+ KEYBUTTON_PUSHED("keybutton_pushed.png"),
+
+ SCROLL_UPBUTTON_NORMAL("scroll_button_up_nml.png"),
+ SCROLL_UPBUTTON_HOVER("scroll_button_up_hover.png"),
+ SCROLL_UPBUTTON_PUSHED("scroll_button_up_pushed.png"),
+ SCROLL_DOWNBUTTON_NORMAL("scroll_button_down_nml.png"),
+ SCROLL_DOWNBUTTON_HOVER("scroll_button_down_hover.png"),
+ SCROLL_DOWNBUTTON_PUSHED("scroll_button_down_pushed.png"),
+ SCROLL_THUMB("scroll_thumb.png"),
+ SCROLL_SHAFT("scroll_back.png");
+
+ private String name;
+
+ private KeyWindowImageName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+ }
+
+ private Display display;
+ private Map<String, Image> keyWindowImageMap;
+
+ /**
+ * Constructor
+ */
+ public GeneralKeyWindowImageRegistry() {
+ this.display = Display.getDefault();
+ this.keyWindowImageMap = new HashMap<String, Image>();
+ }
+
+ public Image getKeyWindowImageData(KeyWindowImageName name) {
+ if (keyWindowImageMap.size() == 0) {
+ /* load all of the images at once */
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ InputStream is = null;
+ String imageName, imagePath;
+
+ KeyWindowImageName[] values = KeyWindowImageName.values();
+ for (KeyWindowImageName value : values) {
+ imageName = value.getName();
+ imagePath = ImageRegistry.IMAGES_FOLDER + "/" +
+ KEYWINDOW_FOLDER + "/" + imageName;
+
+ try {
+ is = classLoader.getResourceAsStream(imagePath);
+ if (null != is) {
+ logger.fine("KeyWindow image is loaded : " + imagePath);
+ keyWindowImageMap.put(imageName, new Image(display, is));
+ } else {
+ logger.severe("missing image : " + imagePath);
+ }
+ } finally {
+ IOUtil.close(is);
+ }
+ }
+ }
+
+ return keyWindowImageMap.get(name.getName());
+ }
+
+ public void dispose() {
+ if (null != keyWindowImageMap) {
+ Image image = null;
+
+ Collection<Image> images = keyWindowImageMap.values();
+ Iterator<Image> imageIterator = images.iterator();
+
+ while (imageIterator.hasNext()) {
+ image = imageIterator.next();
+ image.dispose();
+ }
+ }
+ }
+}
public class ImageRegistry {
public static final String ICONS_FOLDER = "icons";
public static final String IMAGES_FOLDER = "images";
- public static final String KEYWINDOW_FOLDER = "key-window";
private static Logger logger =
SkinLogger.getSkinLogger(ImageRegistry.class).getLogger();
}
}
- public enum KeyWindowImageName {
- KEYBUTTON_NORMAL("keybutton_nml.png"),
- KEYBUTTON_HOVER("keybutton_hover.png"),
- KEYBUTTON_PUSHED("keybutton_pushed.png"),
-
- SCROLL_UPBUTTON_NORMAL("scroll_button_up_nml.png"),
- SCROLL_UPBUTTON_HOVER("scroll_button_up_hover.png"),
- SCROLL_UPBUTTON_PUSHED("scroll_button_up_pushed.png"),
- SCROLL_DOWNBUTTON_NORMAL("scroll_button_down_nml.png"),
- SCROLL_DOWNBUTTON_HOVER("scroll_button_down_hover.png"),
- SCROLL_DOWNBUTTON_PUSHED("scroll_button_down_pushed.png"),
- SCROLL_THUMB("scroll_thumb.png"),
- SCROLL_SHAFT("scroll_back.png");
-
- private String name;
-
- private KeyWindowImageName(String name) {
- this.name = name;
- }
-
- public String getName() {
- return this.name;
- }
- }
-
private Display display;
private EmulatorUI dbiContents;
private Map<String, Image> resourceImageMap;
private Map<String, Image> iconImageMap;
private Map<String, Image> skinImageMap;
- private Map<String, Image> keyWindowImageMap;
private String skinPath;
this.resourceImageMap = new HashMap<String, Image>();
this.iconImageMap = new HashMap<String, Image>();
this.skinImageMap = new HashMap<String, Image>();
- this.keyWindowImageMap = new HashMap<String, Image>();
init(this.skinPath);
}
return iconImageMap.get(name.getName());
}
- public Image getKeyWindowImageData(KeyWindowImageName name) {
- if (keyWindowImageMap.size() == 0) {
- /* load all of the images at once */
- ClassLoader classLoader = this.getClass().getClassLoader();
- InputStream is = null;
- String imageName, imagePath;
-
- KeyWindowImageName[] values = KeyWindowImageName.values();
- for (KeyWindowImageName value : values) {
- imageName = value.getName();
- imagePath = IMAGES_FOLDER + "/" +
- KEYWINDOW_FOLDER + "/" + imageName;
-
- try {
- is = classLoader.getResourceAsStream(imagePath);
- if (null != is) {
- logger.fine("KeyWindow image is loaded : " + imagePath);
- keyWindowImageMap.put(imageName, new Image(display, is));
- } else {
- logger.severe("missing image : " + imagePath);
- }
- } finally {
- IOUtil.close(is);
- }
- }
- }
-
- return keyWindowImageMap.get(name.getName());
- }
-
public void dispose() {
Collection<Image> images = null;
Iterator<Image> imageIterator = null;
image.dispose();
}
}
-
- /* general key window image */
- if (null != keyWindowImageMap) {
- images = keyWindowImageMap.values();
-
- imageIterator = images.iterator();
-
- while (imageIterator.hasNext()) {
- image = imageIterator.next();
- image.dispose();
- }
- }
}
}