///*******************************************************************************
// * 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.Color;
//import org.eclipse.swt.graphics.GC;
//import org.eclipse.swt.graphics.Image;
//import org.eclipse.swt.graphics.Point;
//import org.eclipse.swt.graphics.Rectangle;
//
//public class BulletParagraph extends Paragraph {
// public static final int CIRCLE = 1;
//
// public static final int TEXT = 2;
//
// public static final int IMAGE = 3;
//
// private int style = CIRCLE;
//
// private String text;
//
// private int CIRCLE_DIAM = 5;
//
// private int SPACING = 10;
//
// private int indent = -1;
//
// private int bindent = -1;
//
// private Rectangle bbounds;
//
// /**
// * Constructor for BulletParagraph.
// *
// * @param addVerticalSpace
// */
// public BulletParagraph(boolean addVerticalSpace) {
// super(addVerticalSpace);
// }
//
// public int getIndent() {
// int ivalue = indent;
// if (ivalue != -1)
// return ivalue;
// switch (style) {
// case CIRCLE:
// ivalue = CIRCLE_DIAM + SPACING;
// break;
// default:
// ivalue = 20;
// break;
// }
// return getBulletIndent() + ivalue;
// }
//
// public int getBulletIndent() {
// if (bindent != -1)
// return bindent;
// return 0;
// }
//
// /*
// * @see IBulletParagraph#getBulletStyle()
// */
// public int getBulletStyle() {
// return style;
// }
//
// public void setBulletStyle(int style) {
// this.style = style;
// }
//
// public void setBulletText(String text) {
// this.text = text;
// }
//
// public void setIndent(int indent) {
// this.indent = indent;
// }
//
// public void setBulletIndent(int bindent) {
// this.bindent = bindent;
// }
//
// /*
// * @see IBulletParagraph#getBulletText()
// */
// public String getBulletText() {
// return text;
// }
//
// public void layout(GC gc, int width, Locator loc, int lineHeight,
// Hashtable resourceTable, IHyperlinkSegment selectedLink) {
// computeRowHeights(gc, width, loc, lineHeight, resourceTable);
// layoutBullet(gc, loc, lineHeight, resourceTable);
// super.layout(gc, width, loc, lineHeight, resourceTable, selectedLink);
// }
//
// public void paint(GC gc, Rectangle repaintRegion,
// Hashtable resourceTable, IHyperlinkSegment selectedLink,
// SelectionData selData) {
// paintBullet(gc, repaintRegion, resourceTable);
// super.paint(gc, repaintRegion, resourceTable, selectedLink, selData);
// }
//
// private void layoutBullet(GC gc, Locator loc, int lineHeight,
// Hashtable resourceTable) {
// int x = loc.x - getIndent() + getBulletIndent();
// int rowHeight = ((int[]) loc.heights.get(0))[0];
// if (style == CIRCLE) {
// int y = loc.y + rowHeight / 2 - CIRCLE_DIAM / 2;
// bbounds = new Rectangle(x, y, CIRCLE_DIAM, CIRCLE_DIAM);
// } else if (style == TEXT && text != null) {
// //int height = gc.getFontMetrics().getHeight();
// Point textSize = gc.textExtent(text);
// bbounds = new Rectangle(x, loc.y, textSize.x, textSize.y);
// } else if (style == IMAGE && text != null) {
// Image image = (Image) resourceTable.get(text);
// if (image != null) {
// Rectangle ibounds = image.getBounds();
// int y = loc.y + rowHeight / 2 - ibounds.height / 2;
// bbounds = new Rectangle(x, y, ibounds.width, ibounds.height);
// }
// }
// }
//
// public void paintBullet(GC gc, Rectangle repaintRegion,
// Hashtable resourceTable) {
// if (bbounds == null)
// return;
// int x = bbounds.x;
// int y = bbounds.y;
// if (repaintRegion != null) {
// x -= repaintRegion.x;
// y -= repaintRegion.y;
// }
// if (style == CIRCLE) {
// Color bg = gc.getBackground();
// Color fg = gc.getForeground();
// gc.setBackground(fg);
// gc.fillRectangle(x, y + 1, 5, 3);
// gc.fillRectangle(x + 1, y, 3, 5);
// gc.setBackground(bg);
// } else if (style == TEXT && text != null) {
// gc.drawText(text, x, y);
// } else if (style == IMAGE && text != null) {
// Image image = (Image) resourceTable.get(text);
// if (image != null)
// gc.drawImage(image, x, y);
// }
// }
//}