///******************************************************************************* // * 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); // } //}