Java tutorial
/******************************************************************************* * Copyright (c) 2014 Joachim Tessmer. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Joachim Tessmer - initial API and implementation ******************************************************************************/ package de.instanttouch.ui.scaffolding.swt; import org.eclipse.jface.resource.CompositeImageDescriptor; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Point; /** * An OverlayIcon consists of a main icon and several adornments. */ public class SnakeOverlayIcon extends CompositeImageDescriptor { static final int DEFAULT_WIDTH = 16; static final int DEFAULT_HEIGHT = 16; private Point size = null; private final ImageData overlay; private final ImageData base; public SnakeOverlayIcon(ImageDescriptor base, ImageDescriptor overlay) { this.base = base.getImageData(); this.overlay = overlay.getImageData(); this.size = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT); } public SnakeOverlayIcon(Image base, Image overlay) { this.base = base.getImageData(); this.overlay = overlay.getImageData(); this.size = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT); } protected void drawBottomLeft(ImageData data) { drawImage(data, 0, getSize().y - data.height); } @Override protected void drawCompositeImage(int width, int height) { drawImage(base, 0, 0); drawBottomLeft(overlay); } @Override protected Point getSize() { return size; } }