///*******************************************************************************
// * Copyright (c) 2000, 2005 IBM Corporation and others.
// * 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:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.internal.forms.widgets;
//
//import java.util.Hashtable;
//
//import org.eclipse.swt.graphics.*;
//
///**
// * @version 1.0
// * @author
// */
//public class ImageSegment extends ObjectSegment {
// public static final String SEL_IMAGE_PREFIX = "isel."; //$NON-NLS-1$
//
// public Image getImage(Hashtable objectTable) {
// return getImage(getObjectId(), objectTable);
// }
//
// private Image getImage(String key, Hashtable objectTable) {
// if (key == null)
// return null;
// Object obj = objectTable.get(key);
// if (obj == null)
// return null;
// if (obj instanceof Image)
// return (Image) obj;
// return null;
// }
//
// private Image getSelectedImage(Hashtable objectTable, SelectionData selData) {
// String key = SEL_IMAGE_PREFIX + getObjectId();
// Image image = getImage(key, objectTable);
// if (image==null) {
// image = FormUtil.createAlphaMashImage(selData.display, getImage(objectTable));
// if (image!=null)
// objectTable.put(key, image);
// }
// return image;
// }
///*
// private String getSelectedImageId() {
// if (getObjectId() == null)
// return null;
// return SEL_IMAGE_PREFIX + getObjectId();
// }
//*/
//
// public void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle repaintRegion) {
// Image image = getImage(resourceTable);
// int iwidth = 0;
// int iheight = 0;
// if (image != null) {
// Rectangle rect = image.getBounds();
// iwidth = rect.width + (isSelectable()?2:0);
// iheight = rect.height + (isSelectable()?2:0);
// } else
// return;
// Rectangle bounds = getBounds();
// int ix = bounds.x+(isSelectable()?1:0);
// int iy = bounds.y+(isSelectable()?1:0);
//
// if (selData != null) {
// int leftOffset = selData.getLeftOffset(bounds.height);
// int rightOffset = selData.getRightOffset(bounds.height);
// boolean firstRow = selData.isFirstSelectionRow(bounds.y,
// bounds.height);
// boolean lastRow = selData.isLastSelectionRow(bounds.y,
// bounds.height);
// boolean selectedRow = selData
// .isSelectedRow(bounds.y, bounds.height);
// if (selectedRow) {
// if ((firstRow && leftOffset > ix) ||
// (lastRow && rightOffset < ix + iwidth/2)) {
// drawClipImage(gc, image, ix, iy, repaintRegion);
// }
// else {
// Color savedBg = gc.getBackground();
// gc.setBackground(selData.bg);
// int sx = ix;
// int sy = iy;
// if (repaintRegion!=null) {
// sx -= repaintRegion.x;
// sy -= repaintRegion.y;
// }
// gc.fillRectangle(sx, sy, iwidth, iheight);
// Image selImage = getSelectedImage(resourceTable, selData);
// gc.drawImage(selImage, sx, sy);
// gc.setBackground(savedBg);
// }
// }
// else
// drawClipImage(gc, image, ix, iy, repaintRegion);
// } else
// drawClipImage(gc, image, ix, iy, repaintRegion);
// if (selected) {
// int fx = bounds.x;
// int fy = bounds.y;
// if (repaintRegion!=null) {
// fx -= repaintRegion.x;
// fy -= repaintRegion.y;
// }
// Color fg = gc.getForeground();
// gc.setForeground(gc.getBackground());
// // Clean up to avoid canceling out XOR if it is already
// // selected.
// gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1,
// bounds.height - 1);
// gc.setForeground(fg);
// gc.drawFocus(fx, fy, bounds.width, bounds.height);
// }
// }
// private void drawClipImage(GC gc, Image image, int ix, int iy, Rectangle repaintRegion) {
// if (repaintRegion!=null) {
// ix -= repaintRegion.x;
// iy -= repaintRegion.y;
// }
// gc.drawImage(image, ix, iy);
// }
//
// protected Point getObjectSize(Hashtable resourceTable, int wHint) {
// Image image = getImage(resourceTable);
// if (image==null)
// return new Point(0, 0);
// Rectangle ibounds = image.getBounds();
// return new Point(ibounds.width, ibounds.height);
// }
//}