### Eclipse Workspace Patch 1.0
#P org.eclipse.gef
Index: src/org/eclipse/gef/internal/InternalImages.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/InternalImages.java,v
retrieving revision 1.13
diff -u -r1.13 InternalImages.java
--- src/org/eclipse/gef/internal/InternalImages.java 2 Jun 2005 19:22:39 -0000 1.13
+++ src/org/eclipse/gef/internal/InternalImages.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.eclipse.gef.internal;
+import org.eclipse.swt.graphics.Image;
+
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
@@ -59,6 +61,26 @@
public static final ImageDescriptor DESC_BLOCK_ALIGN_CENTER;
public static final ImageDescriptor DESC_BLOCK_ALIGN_RIGHT;
+public static final ImageDescriptor DESC_PINNED;
+public static final ImageDescriptor DESC_UNPINNED;
+
+public static final ImageDescriptor DESC_PALETTE;
+
+/**
+ * Can be used to access the cached pinned image by using {@link #get(String)}.
+ */
+public static final String IMG_PINNED = "icons/pinned.gif";//$NON-NLS-1$
+
+/**
+ * Can be used to access the cached pinned image by using {@link #get(String)}.
+ */
+public static final String IMG_UNPINNED = "icons/unpinned.gif";//$NON-NLS-1$
+
+/**
+ * Can be used to access the cached pinned image by using {@link #get(String)}.
+ */
+public static final String IMG_PALETTE = "icons/palette_view.gif";//$NON-NLS-1$
+
static {
DESC_BOLD = createDescriptor("icons/style_bold.gif"); //$NON-NLS-1$
DESC_ITALIC = createDescriptor("icons/style_italic.gif"); //$NON-NLS-1$
@@ -71,8 +93,8 @@
DESC_BLOCK_ALIGN_CENTER = createDescriptor("icons/style_paragraph_center.gif"); //$NON-NLS-1$
DESC_BLOCK_ALIGN_RIGHT = createDescriptor("icons/style_paragraph_right.gif"); //$NON-NLS-1$
- DESC_ZOOM_IN = createDescriptor("icons/zoomplus.gif"); //$NON-NLS-1$
- DESC_ZOOM_OUT = createDescriptor("icons/zoomminus.gif"); //$NON-NLS-1$
+ DESC_ZOOM_IN = createDescriptor("icons/zoom_in.gif"); //$NON-NLS-1$
+ DESC_ZOOM_OUT = createDescriptor("icons/zoom_out.gif"); //$NON-NLS-1$
DESC_MATCH_WIDTH = createDescriptor("icons/matchwidth.gif"); //$NON-NLS-1$
DESC_MATCH_HEIGHT = createDescriptor("icons/matchheight.gif"); //$NON-NLS-1$
@@ -101,10 +123,45 @@
ICON_MATCH_WIDTH = createDescriptor("icons/sizehz.gif"); //$NON-NLS-1$
ICON_MATCH_HEIGHT = createDescriptor("icons/sizevt.gif"); //$NON-NLS-1$
+
+ DESC_PINNED = createAndCache(IMG_PINNED);
+ DESC_UNPINNED = createAndCache(IMG_UNPINNED);
+
+ DESC_PALETTE = createAndCache(IMG_PALETTE);
+
}
private static ImageDescriptor createDescriptor(String filename) {
return ImageDescriptor.createFromFile(InternalImages.class, filename);
}
+/**
+ * Creates the image descriptor from the filename given and caches it in the
+ * plugin's image registry.
+ *
+ * @param imageName
+ * the full filename of the image
+ * @return the new image descriptor
+ */
+private static ImageDescriptor createAndCache(String imageName) {
+ ImageDescriptor result = createDescriptor(imageName);
+ InternalGEFPlugin.getDefault().getImageRegistry().put(imageName, result);
+ return result;
+}
+
+/**
+ * Gets an image from the image registry. This image should not be disposed
+ * of, that is handled in the image registry. The image descriptor must have
+ * previously been cached in the image registry. The cached images for the
+ * public image names defined in this file can be retrieved using this
+ * method.
+ *
+ * @param imageName
+ * the full filename of the image
+ * @return the image or null if it has not been cached in the registry
+ */
+public static Image get(String imageName) {
+ return InternalGEFPlugin.getDefault().getImageRegistry().get(imageName);
+}
+
}
Index: src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java,v
retrieving revision 1.16
diff -u -r1.16 PaletteStackEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java 21 Dec 2007 21:02:26 -0000 1.16
+++ src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -12,6 +12,7 @@
import java.beans.PropertyChangeEvent;
import java.util.Iterator;
+import java.util.List;
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.events.MenuListener;
@@ -23,6 +24,7 @@
import org.eclipse.draw2d.ActionEvent;
import org.eclipse.draw2d.ActionListener;
+import org.eclipse.draw2d.Border;
import org.eclipse.draw2d.BorderLayout;
import org.eclipse.draw2d.ButtonBorder;
import org.eclipse.draw2d.ButtonModel;
@@ -35,7 +37,6 @@
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.StackLayout;
import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.GraphicalEditPart;
@@ -61,14 +62,15 @@
{
private static final Dimension EMPTY_DIMENSION = new Dimension(0, 0);
+private static final Border BORDER_TOGGLE = new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR);
// listen to changes of clickable tool figure
private ChangeListener clickableListener = new ChangeListener() {
public void handleStateChanged(ChangeEvent event) {
if (event.getPropertyName().equals(ButtonModel.MOUSEOVER_PROPERTY))
- arrowFigure.getModel().setMouseOver(activeFigure.getModel().isMouseOver());
+ getClickableFigure().getModel().setMouseOver(activeFigure.getModel().isMouseOver());
else if (event.getPropertyName().equals(ButtonModel.ARMED_PROPERTY))
- arrowFigure.getModel().setArmed(activeFigure.getModel().isArmed());
+ getClickableFigure().getModel().setArmed(activeFigure.getModel().isArmed());
}
};
@@ -76,9 +78,9 @@
private ChangeListener clickableArrowListener = new ChangeListener() {
public void handleStateChanged(ChangeEvent event) {
if (event.getPropertyName().equals(ButtonModel.MOUSEOVER_PROPERTY))
- activeFigure.getModel().setMouseOver(arrowFigure.getModel().isMouseOver());
+ activeFigure.getModel().setMouseOver(getClickableFigure().getModel().isMouseOver());
if (event.getPropertyName().equals(ButtonModel.ARMED_PROPERTY))
- activeFigure.getModel().setArmed(arrowFigure.getModel().isArmed());
+ activeFigure.getModel().setArmed(getClickableFigure().getModel().isArmed());
}
};
@@ -93,16 +95,17 @@
private PaletteListener paletteListener = new PaletteListener() {
public void activeToolChanged(PaletteViewer palette, ToolEntry tool) {
if (getStack().getChildren().contains(tool)) {
- if (!arrowFigure.getModel().isSelected())
- arrowFigure.getModel().setSelected(true);
+ if (!getClickableFigure().getModel().isSelected())
+ getClickableFigure().getModel().setSelected(true);
if (!getStack().getActiveEntry().equals(tool))
getStack().setActiveEntry(tool);
} else
- arrowFigure.getModel().setSelected(false);
+ getClickableFigure().getModel().setSelected(false);
}
};
private Clickable activeFigure;
+private Clickable clickableFigure;
private RolloverArrow arrowFigure;
private Figure contentsFigure;
private Menu menu;
@@ -166,62 +169,70 @@
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
public IFigure createFigure() {
- Figure figure = new Figure() {
- public Dimension getPreferredSize(int wHint, int hHint) {
- if (PaletteStackEditPart.this.getChildren().isEmpty())
- return EMPTY_DIMENSION;
- return super.getPreferredSize(wHint, hHint);
- }
-
- public void paintBorder(Graphics graphics) {
- int layoutMode = getPreferenceSource().getLayoutSetting();
- if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST
- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS)
- return;
-
- Rectangle rect = getBounds().getCopy();
-
- graphics.translate(getLocation());
- graphics.setBackgroundColor(ColorConstants.listForeground);
-
- // fill the corner arrow
- int[] points = new int[6];
-
- points[0] = rect.width;
- points[1] = rect.height - 5;
- points[2] = rect.width;
- points[3] = rect.height;
- points[4] = rect.width - 5;
- points[5] = rect.height;
-
- graphics.fillPolygon(points);
-
- graphics.translate(getLocation().getNegated());
- }
- };
- figure.setLayoutManager(new BorderLayout());
-
+
+ IFigure stackFigure;
+ arrowFigure = new RolloverArrow();
+
+ if (isToolbarItem()) {
+ // the entire stack figure is clickable on the toolbar
+ stackFigure = new Clickable() {
+ public boolean hasFocus() {
+ return false;
+ }
+ public Dimension getPreferredSize(int wHint, int hHint) {
+ if (PaletteStackEditPart.this.getChildren().isEmpty())
+ return EMPTY_DIMENSION;
+ return super.getPreferredSize(wHint, hHint);
+ }
+ };
+ ((Clickable)stackFigure).setRolloverEnabled(true);
+ stackFigure.setBorder(BORDER_TOGGLE);
+
+ // Set up the arrow figure. Disable the arrow figure so clicks go to the stack figure.
+ arrowFigure.setBackgroundColor(ColorConstants.black);
+ arrowFigure.setEnabled(false);
+
+ clickableFigure = ((Clickable)stackFigure);
+ } else {
+ // the stack figure is not clickable on the palette so that drag and drop still works
+ stackFigure = new Figure() {
+ public Dimension getPreferredSize(int wHint, int hHint) {
+ if (PaletteStackEditPart.this.getChildren().isEmpty())
+ return EMPTY_DIMENSION;
+ return super.getPreferredSize(wHint, hHint);
+ }
+ };
+
+ // Set up the arrow figure.
+ arrowFigure.setBackgroundColor(ColorConstants.WIDGET_DARK_SHADOW);
+
+ clickableFigure = arrowFigure;
+ }
+
contentsFigure = new Figure();
-
StackLayout stackLayout = new StackLayout();
// make it so the stack layout does not allow the invisible figures to contribute
// to its bounds
stackLayout.setObserveVisibility(true);
contentsFigure.setLayoutManager(stackLayout);
- figure.add(contentsFigure, BorderLayout.CENTER);
-
- arrowFigure = new RolloverArrow();
-
- arrowFigure.addChangeListener(clickableArrowListener);
-
- arrowFigure.addActionListener(actionListener);
+ stackFigure.add(contentsFigure);
+ stackFigure.add(arrowFigure);
+
+ getClickableFigure().addChangeListener(clickableArrowListener);
+ getClickableFigure().addActionListener(actionListener);
- int layoutMode = getPreferenceSource().getLayoutSetting();
- if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST
- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS)
- figure.add(arrowFigure, BorderLayout.RIGHT);
- return figure;
+ return stackFigure;
+}
+
+/**
+ * Returns the Clickable
figure. This differs depending on
+ * whether or not this palette stack is on the palette toolbar.
+ *
+ * @return the Clickable
figure
+ */
+private Clickable getClickableFigure() {
+ return clickableFigure;
}
/**
@@ -230,8 +241,8 @@
public void deactivate() {
if (activeFigure != null)
activeFigure.removeChangeListener(clickableListener);
- arrowFigure.removeActionListener(actionListener);
- arrowFigure.removeChangeListener(clickableArrowListener);
+ getClickableFigure().removeActionListener(actionListener);
+ getClickableFigure().removeChangeListener(clickableArrowListener);
getPaletteViewer().removePaletteListener(paletteListener);
super.deactivate();
}
@@ -288,7 +299,7 @@
figureBounds.getBottomLeft().x, figureBounds.getBottomLeft().y);
// remove feedback from the arrow Figure and children figures
- arrowFigure.getModel().setMouseOver(false);
+ getClickableFigure().getModel().setMouseOver(false);
eraseTargetFeedback(new Request(RequestConstants.REQ_SELECTION));
menu.setLocation(menuLocation);
@@ -324,13 +335,31 @@
* @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
*/
protected void refreshVisuals() {
- int layoutMode = getPreferenceSource().getLayoutSetting();
- if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST
- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) {
- if (!getFigure().getChildren().contains(arrowFigure))
- getFigure().add(arrowFigure, BorderLayout.RIGHT);
- } else if (getFigure().getChildren().contains(arrowFigure))
- getFigure().remove(arrowFigure);
+ int layoutMode = getLayoutSetting();
+ if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST
+ || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) {
+ getFigure().setLayoutManager(new StackLayout() {
+ public void layout(IFigure figure) {
+ Rectangle r = figure.getClientArea();
+ List children = figure.getChildren();
+ IFigure child;
+ for (int i = 0; i < children.size(); i++) {
+ child = (IFigure)children.get(i);
+ if (child == arrowFigure) {
+ Rectangle.SINGLETON.setBounds(r);
+ Rectangle.SINGLETON.width = 11;
+ child.setBounds(Rectangle.SINGLETON);
+ } else {
+ child.setBounds(r);
+ }
+ }
+ }
+ });
+ } else {
+ getFigure().setLayoutManager(new BorderLayout());
+ getFigure().setConstraint(contentsFigure, BorderLayout.CENTER);
+ getFigure().setConstraint(arrowFigure, BorderLayout.RIGHT);
+ }
}
/**
@@ -396,35 +425,14 @@
{
/**
- * Creates a new Clickable with a TriangleFigure as its child.
+ * Creates a new Clickable that paints a triangle figure.
*/
RolloverArrow() {
- super(new TriangleFigure());
+ super();
setRolloverEnabled(true);
- setBorder(new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR));
+ setBorder(null);
setOpaque(false);
- setStyle(Clickable.STYLE_BUTTON);
-}
-
-/**
- * Draws a checkered pattern to emulate a toggle button that is in the selected state.
- * @param graphics The Graphics object used to paint
- */
-protected void fillCheckeredRectangle(Graphics graphics) {
- // method taken from ToggleButton - because this figure *isn't* a toggle button,
- // but should match the checkered look of the tool's toggle button
- graphics.setBackgroundColor(ColorConstants.button);
- graphics.setForegroundColor(ColorConstants.buttonLightest);
- Rectangle rect = getClientArea(Rectangle.SINGLETON).crop(new Insets(1, 1, 0, 0));
- graphics.fillRectangle(rect.x, rect.y, rect.width, rect.height);
-
- graphics.clipRect(rect);
- graphics.translate(rect.x, rect.y);
- int n = rect.width + rect.height;
- for (int i = 1; i < n; i += 2) {
- graphics.drawLine(0, i, i, 0);
- }
- graphics.restoreState();
+ setPreferredSize(11, -1);
}
/**
@@ -434,49 +442,21 @@
return false;
}
-/**
- * @see org.eclipse.draw2d.Figure#paintFigure(Graphics)
- */
-protected void paintFigure(Graphics graphics) {
- if (isSelected() && isOpaque())
- fillCheckeredRectangle(graphics);
- else
- super.paintFigure(graphics);
-}
-
-}
-
-class TriangleFigure
- extends Figure
-{
-
-/**
- * Creates a new TriangleFigure with preferred size 7, -1
- */
-TriangleFigure() {
- super();
- setPreferredSize(7, -1);
-}
-
-/**
- * @see org.eclipse.draw2d.IFigure#paint(org.eclipse.draw2d.Graphics)
- */
-public void paint(Graphics graphics) {
+public void paintFigure(Graphics graphics) {
Rectangle rect = getBounds().getCopy();
graphics.translate(getLocation());
- graphics.setBackgroundColor(ColorConstants.listForeground);
// fill the arrow
int[] points = new int[8];
- points[0] = 1;
+ points[0] = 4;
points[1] = rect.height / 2;
- points[2] = 6;
+ points[2] = 9;
points[3] = rect.height / 2;
- points[4] = 3;
+ points[4] = 6;
points[5] = 3 + rect.height / 2;
- points[6] = 1;
+ points[6] = 4;
points[7] = rect.height / 2;
graphics.fillPolygon(points);
Index: src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java
===================================================================
RCS file: src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java
diff -N src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java 30 Mar 2005 21:27:03 -0000 1.9
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * 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.gef.internal.ui.palette.editparts;
-
-import org.eclipse.draw2d.Border;
-import org.eclipse.draw2d.Figure;
-
-/**
- * @author hudsonr
- */
-public class GroupFigure extends Figure {
-
-private static final Border BORDER = new RaisedBorder(2, 2, 2, 2);
-
-{
- setBorder(BORDER);
-}
-
-}
Index: src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java,v
retrieving revision 1.24
diff -u -r1.24 DrawerEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java 19 Oct 2007 19:47:06 -0000 1.24
+++ src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -195,7 +195,7 @@
setImageDescriptor(img);
getDrawerFigure().setTitle(getPaletteEntry().getLabel());
- getDrawerFigure().setLayoutMode(getPreferenceSource().getLayoutSetting());
+ getDrawerFigure().setLayoutMode(getLayoutSetting());
boolean showPin = getPreferenceSource().getAutoCollapseSetting()
== PaletteViewerPreferences.COLLAPSE_AS_NEEDED;
Index: src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java,v
retrieving revision 1.9
diff -u -r1.9 GroupEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java 19 Oct 2007 19:47:06 -0000 1.9
+++ src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.gef.internal.ui.palette.editparts;
+import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.FlowLayout;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.LayoutManager;
@@ -33,14 +34,14 @@
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
public IFigure createFigure() {
- return new GroupFigure();
+ return new Figure();
}
/**
* @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
*/
protected void refreshVisuals() {
- int layout = getPreferenceSource().getLayoutSetting();
+ int layout = getLayoutSetting();
if (cachedLayout == layout)
return;
cachedLayout = layout;
Index: src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java,v
retrieving revision 1.15
diff -u -r1.15 TemplateEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java 19 Oct 2007 19:47:06 -0000 1.15
+++ src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java 11 Feb 2008 15:13:48 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -110,8 +110,7 @@
*/
protected String getToolTipText() {
String result = null;
- if (getPreferenceSource().getLayoutSetting()
- != PaletteViewerPreferences.LAYOUT_DETAILS) {
+ if (getLayoutSetting() != PaletteViewerPreferences.LAYOUT_DETAILS) {
result = super.getToolTipText();
}
return result;
@@ -139,7 +138,7 @@
setImageDescriptor(entry.getLargeIcon());
else
setImageDescriptor(entry.getSmallIcon());
- int layoutMode = getPreferenceSource().getLayoutSetting();
+ int layoutMode = getLayoutSetting();
fig.setLayoutMode(layoutMode);
if (layoutMode == PaletteViewerPreferences.LAYOUT_COLUMNS
|| layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS)
Index: src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java,v
retrieving revision 1.28
diff -u -r1.28 ToolEntryEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java 19 Oct 2007 19:47:06 -0000 1.28
+++ src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java 11 Feb 2008 15:13:48 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -27,15 +27,20 @@
import org.eclipse.draw2d.ButtonModel;
import org.eclipse.draw2d.Clickable;
import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToggleButton;
+import org.eclipse.draw2d.Toggle;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.AccessibleEditPart;
import org.eclipse.gef.DragTracker;
import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.internal.ui.palette.PaletteUtil;
import org.eclipse.gef.palette.PaletteEntry;
+import org.eclipse.gef.palette.PaletteStack;
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gef.ui.palette.PaletteViewerPreferences;
import org.eclipse.gef.ui.palette.editparts.PaletteEditPart;
@@ -226,14 +231,25 @@
};
}
-static final Border BORDER_TOGGLE = new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR);
+static final Border TOOLBAR_ITEM_BORDER = new ButtonBorder(
+ ButtonBorder.SCHEMES.TOOLBAR);
static final Border COLUMNS_BORDER = new MarginBorder(2, 0, 1, 0);
+static final Border LIST_BORDER = new MarginBorder(3, 16, 2, 0);
+static final Border ICON_BORDER = new MarginBorder(3, 3, 3, 3);
+
public IFigure createFigure() {
- class InactiveToggleButton extends ToggleButton {
- InactiveToggleButton(IFigure contents) {
+ class InactiveToggleButton extends Toggle {
+
+ InactiveToggleButton(IFigure contents) {
super(contents);
setOpaque(false);
setEnabled(true);
+ if (isToolbarItem()
+ && !PaletteStack.PALETTE_TYPE_STACK.equals(getPaletteEntry()
+ .getParent().getType())) {
+ setStyle(Clickable.STYLE_BUTTON | Clickable.STYLE_TOGGLE);
+ setBorder(TOOLBAR_ITEM_BORDER);
+ }
}
public IFigure findMouseEventTargetAt(int x, int y) {
return null;
@@ -245,14 +261,62 @@
super.setEnabled(value);
if (isEnabled()) {
setRolloverEnabled(true);
- setBorder(BORDER_TOGGLE);
+ if (getFlag(STYLE_BUTTON)) {
+ setBorder(TOOLBAR_ITEM_BORDER);
+ }
setForegroundColor(null);
} else {
- setBorder(null);
+ if (getFlag(STYLE_BUTTON)) {
+ setBorder(null);
+ }
setRolloverEnabled(false);
setForegroundColor(ColorConstants.gray);
}
}
+ protected void paintFigure(Graphics graphics) {
+ super.paintFigure(graphics);
+
+ if (!isToolbarItem() && isEnabled()) {
+ ButtonModel model = getModel();
+ if (isRolloverEnabled() && !model.isMouseOver() && !model.isSelected())
+ return;
+
+ if (model.isSelected()) {
+ graphics.setBackgroundColor(PaletteUtil.getSelectedColor());
+ } else {
+ graphics.setBackgroundColor(PaletteUtil.getHoverColor());
+ }
+ graphics.fillRoundRectangle(getSelectionRectangle(), 3, 3);
+ }
+ }
+
+ protected void paintBorder(Graphics graphics) {
+ // Overridden to draw the focus rectangle the same size as the hover
+ // and selection rectangles.
+
+ if (getBorder() != null)
+ getBorder().paint(this, graphics, NO_INSETS);
+ if (hasFocus()) {
+ graphics.setForegroundColor(ColorConstants.black);
+ graphics.setBackgroundColor(ColorConstants.white);
+ graphics.drawFocus(getSelectionRectangle().getCropped(
+ new Insets(0, 0, 1, 1)));
+ }
+ }
+
+ private Rectangle getSelectionRectangle() {
+ Rectangle rect = Rectangle.SINGLETON;
+ rect.setBounds(getBounds());
+ int layoutMode = getLayoutSetting();
+ if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST
+ || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) {
+ rect.width = customLabel.getPreferredSize().width + 17;
+ rect.x += 11;
+ }
+ rect.intersect(getBounds());
+ return rect;
+ }
+
}
customLabel = new DetailedLabelFigure();
@@ -307,8 +371,7 @@
*/
protected String getToolTipText() {
String result = null;
- if (getPreferenceSource().getLayoutSetting()
- != PaletteViewerPreferences.LAYOUT_DETAILS) {
+ if (getLayoutSetting() != PaletteViewerPreferences.LAYOUT_DETAILS) {
result = super.getToolTipText();
}
return result;
@@ -336,13 +399,20 @@
setImageDescriptor(entry.getLargeIcon());
else
setImageDescriptor(entry.getSmallIcon());
- int layoutMode = getPreferenceSource().getLayoutSetting();
+ int layoutMode = getLayoutSetting();
customLabel.setLayoutMode(layoutMode);
- if (layoutMode == PaletteViewerPreferences.LAYOUT_COLUMNS
- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS)
+ if (layoutMode == PaletteViewerPreferences.LAYOUT_COLUMNS) {
customLabel.setBorder(COLUMNS_BORDER);
- else
- customLabel.setBorder(null);
+ } else if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST
+ || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) {
+ customLabel.setBorder(LIST_BORDER);
+ } else if (layoutMode == PaletteViewerPreferences.LAYOUT_ICONS
+ && !isToolbarItem()) {
+ customLabel.setBorder(ICON_BORDER);
+ } else {
+ customLabel.setBorder(null);
+ }
+
super.refreshVisuals();
}
Index: src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java,v
retrieving revision 1.13
diff -u -r1.13 SliderPaletteEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java 19 Oct 2007 19:47:06 -0000 1.13
+++ src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -12,8 +12,12 @@
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.ToolbarLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.ui.palette.PaletteViewer;
@@ -25,18 +29,76 @@
extends PaletteEditPart
{
+/**
+ * The figure for the shadow that appears below the last palette drawer or item.
+ */
+private static class DropShadowFigure
+ extends Figure {
+
+private static int LAST_DRAWER_SHADOW_HEIGHT = 3;
+
+public DropShadowFigure() {
+ super();
+ setMinimumSize(new Dimension(0, 0));
+}
+
+public Dimension getPreferredSize(int wHint, int hHint) {
+ hHint = hHint == -1 ? LAST_DRAWER_SHADOW_HEIGHT
+ : Math.min(hHint, LAST_DRAWER_SHADOW_HEIGHT);
+ return new Dimension(wHint, hHint);
+}
+
+protected void paintFigure(Graphics graphics) {
+ super.paintFigure(graphics);
+ Rectangle r = Rectangle.SINGLETON;
+ r.setBounds(getBounds());
+
+ graphics.setForegroundColor(ColorConstants.buttonDarker);
+ graphics.drawLine(r.getLocation(), r.getTopRight());
+
+ r.y++;
+ graphics.setForegroundColor(FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.WIDGET_NORMAL_SHADOW,
+ 0.4));
+ graphics.setBackgroundColor(FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.WIDGET_NORMAL_SHADOW,
+ 0.7));
+ graphics.fillGradient(r.x, r.y, r.width, LAST_DRAWER_SHADOW_HEIGHT - 1,
+ true);
+}
+}
+
private PaletteAnimator controller;
+private IFigure paletteContentFigure;
public SliderPaletteEditPart(PaletteRoot paletteRoot) {
super(paletteRoot);
}
public IFigure createFigure() {
- Figure figure = new Figure();
- figure.setOpaque(true);
- figure.setForegroundColor(ColorConstants.listForeground);
- figure.setBackgroundColor(ColorConstants.button);
- return figure;
+ paletteContentFigure = new Figure();
+ paletteContentFigure.setLayoutManager(new PaletteToolbarLayout());
+ paletteContentFigure.setOpaque(true);
+ paletteContentFigure.setBackgroundColor(ColorConstants.listBackground);
+
+ Figure dropShadowFigure = new DropShadowFigure();
+
+ Figure wrapperFigure = new Figure();
+ wrapperFigure.setLayoutManager(new ToolbarLayout());
+ wrapperFigure.add(paletteContentFigure);
+ wrapperFigure.add(dropShadowFigure);
+ wrapperFigure.setOpaque(true);
+ wrapperFigure.setForegroundColor(ColorConstants.listForeground);
+ wrapperFigure.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND);
+
+ return wrapperFigure;
+}
+
+public IFigure getContentPane() {
+ if (paletteContentFigure != null) {
+ return paletteContentFigure;
+ }
+ return super.getContentPane();
}
/**
@@ -55,8 +117,6 @@
controller = new PaletteAnimator(
((PaletteViewer)getViewer()).getPaletteViewerPreferences());
getViewer().getEditPartRegistry().put(PaletteAnimator.class, controller);
- ToolbarLayout layout = new PaletteToolbarLayout();
- getFigure().setLayoutManager(layout);
getFigure().addLayoutListener(controller);
}
Index: src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java,v
retrieving revision 1.11
diff -u -r1.11 SeparatorEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java 19 Oct 2007 19:47:06 -0000 1.11
+++ src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -75,10 +75,9 @@
*/
protected void paintFigure(Graphics g) {
Rectangle r = getBounds().getCropped(CROP);
- if (getBackgroundColor() == ColorConstants.listBackground) {
- g.setForegroundColor(ColorConstants.buttonDarker);
- g.drawLine(r.getTopLeft(), r.getTopRight());
- g.drawLine(r.getBottomLeft(), r.getBottomRight());
+ if (getBackgroundColor().equals(ColorConstants.listBackground)) {
+ g.setForegroundColor(ColorConstants.WIDGET_NORMAL_SHADOW);
+ g.drawLine(r.getLeft(), r.getRight());
} else {
g.setForegroundColor(ColorConstants.buttonDarker);
g.drawLine(r.getBottomLeft(), r.getTopLeft());
Index: src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java,v
retrieving revision 1.40
diff -u -r1.40 DrawerFigure.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java 19 Oct 2007 19:47:06 -0000 1.40
+++ src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -12,17 +12,15 @@
import java.util.List;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.jface.resource.ImageDescriptor;
-
import org.eclipse.draw2d.Animation;
import org.eclipse.draw2d.Border;
import org.eclipse.draw2d.BorderLayout;
-import org.eclipse.draw2d.ButtonBorder;
import org.eclipse.draw2d.ButtonModel;
import org.eclipse.draw2d.ChangeEvent;
import org.eclipse.draw2d.ChangeListener;
@@ -44,12 +42,12 @@
import org.eclipse.draw2d.SchemeBorder;
import org.eclipse.draw2d.ScrollPane;
import org.eclipse.draw2d.Toggle;
-import org.eclipse.draw2d.ToggleButton;
import org.eclipse.draw2d.ToolbarLayout;
import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.internal.Internal;
+import org.eclipse.gef.internal.InternalImages;
import org.eclipse.gef.ui.palette.PaletteMessages;
import org.eclipse.gef.ui.palette.PaletteViewerPreferences;
import org.eclipse.gef.ui.palette.editparts.PaletteToolbarLayout;
@@ -61,26 +59,17 @@
extends Figure
{
-/** Border constant, toolbar scheme **/
-protected static final Border BUTTON_BORDER = new ButtonBorder(
- ButtonBorder.SCHEMES.TOOLBAR);
-
/** Foreground color constant **/
protected static final Color FG_COLOR = FigureUtilities.mixColors(
ColorConstants.buttonDarker, ColorConstants.button);
-/*
- * @TODO:Pratik
- * This image needs to go in SharedImages or InternalImages
- */
-/** Pin image **/
-public static final Image PIN = new Image(null, ImageDescriptor.createFromFile(
- Internal.class, "icons/pin_view.gif").getImageData()); //$NON-NLS-1$
+private static final Color PIN_HOTSPOT_COLOR = FigureUtilities.mixColors(
+ ColorConstants.listBackground, ColorConstants.WIDGET_NORMAL_SHADOW, 0.60);
/** Scrollpane border constant **/
protected static final Border SCROLL_PANE_BORDER = new MarginBorder(2);
/** Title margin border constant **/
-protected static final Border TITLE_MARGIN_BORDER = new MarginBorder(1, 1, 1, 0);
+protected static final Border TITLE_MARGIN_BORDER = new MarginBorder(4, 2, 2, 2);
/** Toggle button border constant**/
protected static final Border TOGGLE_BUTTON_BORDER = new RaisedBorder();
/** Tooltip border constant **/
@@ -92,12 +81,156 @@
private boolean addedScrollpane = false;
private int layoutMode = -1;
-private ToggleButton pinFigure;
+private PinFigure pinFigure;
private ScrollPane scrollpane;
private boolean showPin = true, skipNextEvent;
private EditPartTipHelper tipHelper;
/**
+ * This is the figure for the pinned and unpinned button.
+ */
+private static class PinFigure extends Toggle {
+
+ private static Label tooltip = new Label(PaletteMessages.TOOLTIP_PIN_FIGURE);
+
+ public PinFigure() {
+ super(new ImageFigure(InternalImages.get(InternalImages.IMG_UNPINNED)));
+ setRolloverEnabled(true);
+ setRequestFocusEnabled(false);
+ setToolTip(tooltip);
+ setOpaque(false);
+
+ addChangeListener(new ChangeListener() {
+ public void handleStateChanged(ChangeEvent e) {
+ if (e.getPropertyName().equals(ButtonModel.SELECTED_PROPERTY)) {
+ if (isSelected()) {
+ ((ImageFigure) (getChildren().get(0))).setImage(InternalImages
+ .get(InternalImages.IMG_PINNED));
+ } else {
+ ((ImageFigure) (getChildren().get(0))).setImage(InternalImages
+ .get(InternalImages.IMG_UNPINNED));
+ }
+ }
+ }
+ });
+ }
+
+ protected void paintFigure(Graphics graphics) {
+ super.paintFigure(graphics);
+
+ ButtonModel model = getModel();
+ if (isRolloverEnabled() && model.isMouseOver()) {
+ graphics.setBackgroundColor(PIN_HOTSPOT_COLOR);
+ graphics.fillRoundRectangle(getClientArea().getCopy().shrink(1, 1), 3, 3);
+ }
+ }
+
+ public void setDrawerExpandedState(boolean expanded) {
+ setEnabled(expanded);
+ setToolTip(expanded ? tooltip : null);
+ }
+
+}
+
+/**
+ * This is the figure for the entire drawer label button.
+ */
+private class CollapseToggle
+ extends Toggle {
+
+public CollapseToggle(IFigure contents) {
+ super(contents);
+ setSelected(true);
+ setRequestFocusEnabled(true);
+ addChangeListener(new ChangeListener() {
+
+ public void handleStateChanged(ChangeEvent e) {
+ if (e.getPropertyName().equals(ButtonModel.SELECTED_PROPERTY)) {
+ Animation.markBegin();
+ handleExpandStateChanged();
+ Animation.run(150);
+ } else if (e.getPropertyName().equals(
+ ButtonModel.MOUSEOVER_PROPERTY)) {
+ repaint();
+ }
+ }
+ });
+}
+
+public IFigure getToolTip() {
+ return buildTooltip();
+}
+
+protected void paintFigure(Graphics g) {
+ super.paintFigure(g);
+ Rectangle r = Rectangle.SINGLETON;
+ r.setBounds(getBounds());
+
+ // draw top border of drawer figure
+ g.setForegroundColor(ColorConstants.buttonDarker);
+ g.drawLine(r.getTopLeft(), r.getTopRight());
+ g.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
+ g.drawLine(r.getTopLeft().getTranslated(0, 1), r.getTopRight()
+ .getTranslated(0, 1));
+ r.crop(new Insets(2, 0, 0, 0));
+ if (isExpanded()) {
+ g.setForegroundColor(FigureUtilities.mixColors(ColorConstants.button,
+ ColorConstants.buttonDarker, 0.65));
+ g.drawLine(r.getLocation(), r.getTopRight());
+ r.crop(new Insets(1, 0, 0, 0));
+ }
+
+ // draw bottom border of drawer figure
+ if (!isExpanded()) {
+ g.setForegroundColor(Display.getCurrent().getSystemColor(
+ SWT.COLOR_WHITE));
+ g.drawLine(r.getBottomLeft().getTranslated(0, -1), r.getBottomRight()
+ .getTranslated(0, -1));
+ r.crop(new Insets(0, 0, 1, 0));
+ }
+
+ // paint background/gradient
+ if (isExpanded()) {
+ g.setBackgroundColor(FigureUtilities.mixColors(ColorConstants.button,
+ ColorConstants.listBackground, 0.85));
+ g.fillRectangle(r);
+ } else if (getModel().isMouseOver()) {
+ Color color1 = FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.listBackground,
+ 0.6);
+ Color color2 = FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND,
+ ColorConstants.WIDGET_NORMAL_SHADOW, 0.9);
+ Color color3 = FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND,
+ ColorConstants.WIDGET_NORMAL_SHADOW, 0.95);
+ Color color4 = FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.listBackground,
+ 0.9);
+
+ g.setForegroundColor(color1);
+ g.setBackgroundColor(color2);
+ g.fillGradient(r.x, r.y, r.width, r.height - 4, true);
+
+ g.setForegroundColor(color2);
+ g.setBackgroundColor(color3);
+ g.fillGradient(r.x, r.bottom() - 4, r.width, 2, true);
+
+ g.setForegroundColor(color3);
+ g.setBackgroundColor(color4);
+ g.fillGradient(r.x, r.bottom() - 2, r.width, 2, true);
+ } else {
+ g.setForegroundColor(FigureUtilities.mixColors(ColorConstants.button,
+ ColorConstants.listBackground, 0.85));
+ g.setBackgroundColor(FigureUtilities.mixColors(ColorConstants.button,
+ ColorConstants.buttonDarker, 0.45));
+ g.fillGradient(r, true);
+ }
+
+}
+}
+
+/**
* Constructor
*
* @param control The Control of the LWS to which this Figure belongs (it is used to
@@ -128,44 +261,13 @@
drawerLabel = new Label();
drawerLabel.setLabelAlignment(Label.LEFT);
- pinFigure = new ToggleButton(new ImageFigure(PIN));
- pinFigure.setBorder(BUTTON_BORDER);
- pinFigure.setRolloverEnabled(true);
- pinFigure.setRequestFocusEnabled(false);
- pinFigure.setToolTip(new Label(PaletteMessages.TOOLTIP_PIN_FIGURE));
+ pinFigure = new PinFigure();
title.add(pinFigure, BorderLayout.RIGHT);
title.add(drawerLabel, BorderLayout.CENTER);
- collapseToggle = new Toggle(title) {
- /**
- * @see org.eclipse.draw2d.Figure#getToolTip()
- */
- public IFigure getToolTip() {
- return buildTooltip();
- }
- protected void paintFigure(Graphics g) {
- super.paintFigure(g);
- Rectangle r = Rectangle.SINGLETON;
- r.setBounds(getBounds());
- r.width = Math.min(50, r.width);
- g.setForegroundColor(FG_COLOR);
- g.fillGradient(Rectangle.SINGLETON, false);
- }
+ collapseToggle = new CollapseToggle(title);
- };
- collapseToggle.setSelected(true);
- collapseToggle.setBorder(TOGGLE_BUTTON_BORDER);
- collapseToggle.setRequestFocusEnabled(true);
- collapseToggle.addChangeListener(new ChangeListener() {
- public void handleStateChanged(ChangeEvent e) {
- if (e.getPropertyName().equals(ButtonModel.SELECTED_PROPERTY)) {
- Animation.markBegin();
- handleExpandStateChanged();
- Animation.run(150);
- }
- }
- });
/*
* @TODO:Pratik
*
@@ -271,7 +373,6 @@
scrollpane.getVerticalScrollBar().setStepIncrement(20);
scrollpane.setLayoutManager(new OverlayScrollPaneLayout());
scrollpane.setContents(new Figure());
- scrollpane.getContents().setOpaque(true);
scrollpane.getContents().setBorder(SCROLL_PANE_BORDER);
}
@@ -335,8 +436,10 @@
remove(scrollpane);
}
- if (pinFigure != null)
- pinFigure.setVisible(isExpanded() && showPin);
+ if (pinFigure != null) {
+ pinFigure.setVisible(showPin);
+ pinFigure.setDrawerExpandedState(isExpanded());
+ }
}
/**
Index: src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java,v
retrieving revision 1.14
diff -u -r1.14 PaletteScrollBar.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java 30 Mar 2005 21:27:03 -0000 1.14
+++ src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java 11 Feb 2008 15:13:47 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -10,56 +10,41 @@
*******************************************************************************/
package org.eclipse.gef.internal.ui.palette.editparts;
-import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.PaletteData;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
-import org.eclipse.draw2d.ArrowButton;
-import org.eclipse.draw2d.Border;
-import org.eclipse.draw2d.ButtonBorder;
import org.eclipse.draw2d.Clickable;
import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.CompoundBorder;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
import org.eclipse.draw2d.RangeModel;
import org.eclipse.draw2d.ScrollBar;
import org.eclipse.draw2d.ScrollBarLayout;
+import org.eclipse.draw2d.Toggle;
import org.eclipse.draw2d.TreeSearch;
import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.internal.ui.palette.PaletteUtil;
+
public final class PaletteScrollBar
extends ScrollBar
{
-private static final ButtonBorder BORDER =
- new ButtonBorder(new ButtonBorder.ButtonScheme(
- new Color[] {ColorConstants.buttonLightest},
- new Color[] {ColorConstants.buttonDarker},
- new Color[] {ColorConstants.buttonDarker},
- new Color[] {ColorConstants.buttonDarker}
- ));
-
-private static final Border CONTRAST = new CompoundBorder(
- new MarginBorder(1, 0, 0, 0) {
- public void paint(IFigure figure, Graphics graphics, Insets insets) {
- if (!((Clickable)figure).getModel().isMouseOver())
- return;
- Rectangle r = getPaintRectangle(figure, insets);
- graphics.setForegroundColor(ColorConstants.button);
- graphics.drawLine(r.x, r.y, r.right(), r.y);
- }
- }, BORDER
-);
+private static final PointList OUTER_DOWN_TRIANGLE = new PointList(3);
+private static final PointList INNER_DOWN_TRIANGLE = new PointList(3);
+private static final PointList OUTER_UP_TRIANGLE = new PointList(3);
+private static final PointList INNER_UP_TRIANGLE = new PointList(3);
-public static final int BUTTON_HEIGHT = 12;
+public static final int BUTTON_HEIGHT = 7;
+private static final int BUTTON_WIDTH = 76;
private static final int SCROLL_TIME = 200;
private static final Image TRANSPARENCY;
@@ -67,12 +52,30 @@
static {
Display display = Display.getCurrent();
PaletteData pData = new PaletteData(0xFF, 0xFF00, 0xFF0000);
- RGB rgb = ColorConstants.button.getRGB();
+ RGB rgb = ColorConstants.INFO_FOREGROUND.getRGB();
int fillColor = pData.getPixel(rgb);
ImageData iData = new ImageData(1, 1, 24, pData);
iData.setPixel(0, 0, fillColor);
- iData.setAlpha(0, 0, 200);
+ iData.setAlpha(0, 0, 15); // 6% transparent -- 255 * 0.06
TRANSPARENCY = new Image(display, iData);
+
+ // TODO: Should I use the Button width here?
+ OUTER_DOWN_TRIANGLE.addPoint(new Point(34, 2));
+ OUTER_DOWN_TRIANGLE.addPoint(new Point(38, 6));
+ OUTER_DOWN_TRIANGLE.addPoint(new Point(42, 2));
+
+ INNER_DOWN_TRIANGLE.addPoint(new Point(35, 2));
+ INNER_DOWN_TRIANGLE.addPoint(new Point(37, 5));
+ INNER_DOWN_TRIANGLE.addPoint(new Point(41, 2));
+
+ OUTER_UP_TRIANGLE.addPoint(new Point(33, 5));
+ OUTER_UP_TRIANGLE.addPoint(new Point(38, 0));
+ OUTER_UP_TRIANGLE.addPoint(new Point(42, 5));
+
+ INNER_UP_TRIANGLE.addPoint(new Point(34, 5));
+ INNER_UP_TRIANGLE.addPoint(new Point(38, 1));
+ INNER_UP_TRIANGLE.addPoint(new Point(42, 5));
+
}
protected Label downLabel;
@@ -88,30 +91,59 @@
}
protected Clickable createDefaultDownButton() {
- return createTransparentArrowButton();
+ return createTransparentArrowButton(true);
}
protected Clickable createDefaultUpButton() {
- return createTransparentArrowButton();
+ return createTransparentArrowButton(false);
}
-private ArrowButton createTransparentArrowButton() {
- ArrowButton button = new ArrowButton() {
+/**
+ * Creates the figure used for the scrollbar button.
+ * @param down true if the arrow should be pointing down; false, if it should be pointing up.
+ * @return a new Toggle
figure for the scroll bar button
+ */
+private Toggle createTransparentArrowButton(final boolean down) {
+ Toggle button = new Toggle() {
protected void paintFigure(Graphics g) {
+ // paint background
if (!getModel().isMouseOver())
g.drawImage(TRANSPARENCY, new Rectangle(0, 0, 1, 1), getBounds());
- else
- super.paintFigure(g);
+ else {
+ g.setBackgroundColor(getModel().isArmed() ? PaletteUtil
+ .getSelectedColor()
+ : PaletteUtil.getHoverColor());
+ g.fillRectangle(getBounds());
+ }
+
+ // paint triangle
+ g.translate(getLocation());
+ PointList outerPoints = transpose(down ? OUTER_DOWN_TRIANGLE : OUTER_UP_TRIANGLE);
+ PointList innerPoints = transpose(down ? INNER_DOWN_TRIANGLE : INNER_UP_TRIANGLE);
+ g.setBackgroundColor(ColorConstants.listBackground);
+ g.fillPolygon(outerPoints);
+ g.setBackgroundColor(ColorConstants.WIDGET_DARK_SHADOW);
+ g.fillPolygon(innerPoints);
+ g.translate(getLocation().getNegated());
}
};
button.setRolloverEnabled(true);
- button.setBorder(BORDER);
return button;
}
/**
- * @see org.eclipse.draw2d.Figure#findFigureAt(int, int, TreeSearch)
+ * Transposes a list of points using the transposer
.
+ * @param origPoints the original list of points
+ * @return a new list of transposed points
*/
+private PointList transpose(PointList origPoints) {
+ PointList transposedPoints = new PointList(origPoints.size());
+ for (int i = 0; i < origPoints.size(); i++) {
+ transposedPoints.addPoint(transposer.t(origPoints.getPoint(i)));
+ }
+ return transposedPoints;
+}
+
public IFigure findFigureAt(int x, int y, TreeSearch search) {
IFigure result = super.findFigureAt(x, y, search);
if (result != this)
@@ -119,9 +151,6 @@
return null;
}
-/**
- * @see org.eclipse.draw2d.Figure#getPreferredSize(int, int)
- */
public Dimension getPreferredSize(int wHint, int hHint) {
return new Dimension(wHint, hHint);
}
@@ -131,17 +160,14 @@
setLayoutManager(new ScrollBarLayout(transposer) {
protected Rectangle layoutButtons(ScrollBar scrollBar) {
Rectangle bounds = transposer.t(scrollBar.getClientArea());
- Dimension buttonSize = new Dimension(bounds.width, BUTTON_HEIGHT);
+ Dimension buttonSize = new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
- getButtonUp().setBounds(transposer.t(
- new Rectangle(bounds.getTopLeft(), buttonSize)));
- Rectangle r = new Rectangle (
- bounds.x, bounds.bottom() - buttonSize.height,
- buttonSize.width, buttonSize.height);
+ getButtonUp().setBounds(
+ transposer.t(new Rectangle(bounds.getTop().getTranslated(
+ -(buttonSize.width / 2), 0), buttonSize)));
+ Rectangle r = new Rectangle(bounds.getBottom().getTranslated(
+ -(buttonSize.width / 2), -buttonSize.height), buttonSize);
getButtonDown().setBounds(transposer.t(r));
- if (scrollBar.getBackgroundColor() == ColorConstants.listBackground
- && getButtonDown().getBorder() != CONTRAST)
- getButtonDown().setBorder(CONTRAST);
Rectangle trackBounds = bounds.getCropped(
new Insets(buttonSize.height, 0, buttonSize.height, 0));
RangeModel model = scrollBar.getRangeModel();
@@ -157,16 +183,10 @@
setOpaque(false);
}
-/**
- * @see org.eclipse.draw2d.ScrollBar#stepDown()
- */
protected void stepDown() {
timedStep(false);
}
-/**
- * @see org.eclipse.draw2d.ScrollBar#stepUp()
- */
protected void stepUp() {
timedStep(true);
}
Index: src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java,v
retrieving revision 1.27
diff -u -r1.27 PaletteEditPart.java
--- src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java 19 Oct 2007 19:47:06 -0000 1.27
+++ src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java 11 Feb 2008 15:13:48 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -39,6 +39,7 @@
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteEntry;
import org.eclipse.gef.palette.PaletteSeparator;
+import org.eclipse.gef.palette.PaletteToolbar;
import org.eclipse.gef.tools.SelectEditPartTracker;
import org.eclipse.gef.ui.palette.PaletteMessages;
import org.eclipse.gef.ui.palette.PaletteViewer;
@@ -301,8 +302,7 @@
* @since 3.2
*/
protected boolean nameNeededInToolTip() {
- return getPreferenceSource().getLayoutSetting()
- == PaletteViewerPreferences.LAYOUT_ICONS;
+ return getLayoutSetting() == PaletteViewerPreferences.LAYOUT_ICONS;
}
/**
@@ -413,4 +413,30 @@
}
}
+/**
+ * Returns the current layout setting.
+ *
+ * @return the current layout setting.
+ * @see PaletteViewerPreferences#getLayoutSetting()
+ * @since 3.4
+ */
+protected int getLayoutSetting() {
+ if (getParent() instanceof PaletteEditPart) {
+ return ((PaletteEditPart) getParent()).getLayoutSetting();
+ }
+ return getPreferenceSource().getLayoutSetting();
+}
+
+/**
+ * Returns true if this item is on the palette toolbar.
+ *
+ * @return true if this item is on the palette toolbar; false otherwise
+ * @since 3.4
+ */
+protected boolean isToolbarItem() {
+ if (getParent() instanceof PaletteEditPart) {
+ return ((PaletteEditPart) getParent()).isToolbarItem();
+ }
+ return false;
+}
}
Index: src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java,v
retrieving revision 1.50
diff -u -r1.50 FlyoutPaletteComposite.java
--- src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java 2 Jan 2008 19:30:22 -0000 1.50
+++ src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java 11 Feb 2008 15:13:48 -0000
@@ -33,9 +33,7 @@
import org.eclipse.swt.events.MouseTrackAdapter;
import org.eclipse.swt.events.MouseTrackListener;
import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Canvas;
@@ -56,7 +54,6 @@
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.TransferDropTargetListener;
@@ -66,7 +63,6 @@
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.XMLMemento;
import org.eclipse.ui.internal.DragCursors;
@@ -80,21 +76,18 @@
import org.eclipse.draw2d.FocusListener;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ImageFigure;
-import org.eclipse.draw2d.ImageUtilities;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.LightweightSystem;
import org.eclipse.draw2d.MarginBorder;
import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.SWTGraphics;
+import org.eclipse.draw2d.Triangle;
import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.gef.SharedCursors;
import org.eclipse.gef.dnd.TemplateTransfer;
import org.eclipse.gef.internal.GEFMessages;
-import org.eclipse.gef.internal.Internal;
+import org.eclipse.gef.internal.InternalImages;
import org.eclipse.gef.ui.views.palette.PaletteView;
/**
@@ -124,6 +117,10 @@
private static final int STATE_HIDDEN = 8;
private static final int STATE_EXPANDED = 1;
+
+private static final Dimension ARROW_SIZE = new Dimension(6, 11);
+private static final Dimension SASH_BUTTON_SIZE = new Dimension(11, 25);
+
/**
* One of the two possible initial states of the flyout palette. This is the default one.
* When in this state, only the flyout palette's sash is visible.
@@ -136,11 +133,6 @@
*/
public static final int STATE_PINNED_OPEN = 4;
-private static final Image LEFT_ARROW = new Image(null, ImageDescriptor.createFromFile(
- Internal.class, "icons/palette_left.gif").getImageData()); //$NON-NLS-1$
-private static final Image RIGHT_ARROW = new Image(null, ImageDescriptor.createFromFile(
- Internal.class, "icons/palette_right.gif").getImageData()); //$NON-NLS-1$
-
private PropertyChangeSupport listeners = new PropertyChangeSupport(this);
private Composite paletteContainer;
private PaletteViewer pViewer, externalViewer;
@@ -681,11 +673,10 @@
}
private class Sash extends Composite {
- private Control button, title;
+ private Control button;
public Sash(Composite parent, int style) {
super(parent, style);
button = createFlyoutControlButton(this);
- title = createTitle(this, false);
new SashDragManager();
addMouseTrackListener(new MouseTrackAdapter() {
@@ -714,48 +705,33 @@
}
});
}
- /**
- * @see org.eclipse.swt.widgets.Control#computeSize(int, int, boolean)
- */
+
public Point computeSize(int wHint, int hHint, boolean changed) {
if (isInState(STATE_PINNED_OPEN))
- return new Point(6, 1);
- Point buttonSize = button.computeSize(wHint, hHint);
- Point titleSize = title.computeSize(wHint, hHint);
- return new Point(Math.max(buttonSize.x, titleSize.x) + 2,
- buttonSize.y + titleSize.y + 7);
+ return new Point(1, 1);
+
+ // button size plus one pixel for the line to be drawn
+ return new Point(SASH_BUTTON_SIZE.width + 1, SASH_BUTTON_SIZE.height + 1);
}
private void handleSashDragged(int shiftAmount) {
int newSize = paletteContainer.getBounds().width
+ (dock == PositionConstants.EAST ? -shiftAmount : shiftAmount);
setPaletteWidth(newSize);
}
- /**
- * @see org.eclipse.swt.widgets.Composite#layout(boolean)
- */
public void layout(boolean changed) {
- if (button == null || title == null)
+ if (button == null)
return;
if (isInState(STATE_PINNED_OPEN)) {
- title.setVisible(false);
button.setVisible(false);
return;
}
- title.setVisible(true);
button.setVisible(true);
Rectangle area = getClientArea();
- // 1 pixel margin all around to draw the raised border
- area.x += 1;
- area.y += 1;
- area.width -= 2;
- area.height -= 2;
- button.setBounds(area.x, area.y, area.width, area.width);
- // 5-pixel spacing
- area.y += area.width + 3;
- title.setBounds(area.x, area.y, area.width,
- title.computeSize(-1, -1).y);
+ button.setBounds(area.x, area.y, SASH_BUTTON_SIZE.width,
+ SASH_BUTTON_SIZE.height);
+
if (transferFocus) {
transferFocus = false;
button.setFocus();
@@ -763,12 +739,8 @@
}
private void paintSash(GC gc) {
Rectangle bounds = getBounds();
- gc.setForeground(ColorConstants.buttonLightest);
- gc.drawLine(0, 0, bounds.width, 0);
- gc.drawLine(0, 0, 0, bounds.height);
gc.setForeground(ColorConstants.buttonDarker);
gc.drawLine(bounds.width - 1, 0, bounds.width - 1, bounds.height - 1);
- gc.drawLine(0, bounds.height - 1, bounds.width - 1, bounds.height - 1);
}
private void updateState() {
setCursor(isInState(STATE_EXPANDED | STATE_PINNED_OPEN)
@@ -1002,10 +974,9 @@
if (dock == PositionConstants.EAST) {
int buttonX = area.width - buttonSize.x;
button.setBounds(buttonX, 0, buttonSize.x, height);
- // leave some space between the button and the title
- title.setBounds(0, 0, buttonX - 2, height);
+ title.setBounds(0, 0, buttonX, height);
} else {
- int titleX = buttonSize.x + 2;
+ int titleX = buttonSize.x;
button.setBounds(0, 0, buttonSize.x, height);
title.setBounds(titleX, 0, area.width - titleX, height);
}
@@ -1025,63 +996,11 @@
}
}
-private class RotatedTitleLabel
- extends ImageFigure {
- public RotatedTitleLabel() {
- FlyoutPaletteComposite.this.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- if (getImage() != null && !getImage().isDisposed())
- getImage().dispose();
- }
- });
- }
- protected void paintFigure(Graphics graphics) {
- if (getImage() == null)
- updateImage();
- super.paintFigure(graphics);
- if (hasFocus())
- graphics.drawFocus(0, 0, bounds.width - 1, bounds.height - 1);
- }
- public void setFont(Font f) {
- if (f != getLocalFont()) {
- super.setFont(f);
- updateImage();
- }
- }
- protected void updateImage() {
- if (getImage() != null)
- getImage().dispose();
- IFigure fig = new TitleLabel(false);
- fig.setFont(getFont());
- fig.setBackgroundColor(ColorConstants.button);
- fig.setOpaque(true);
- // This is a hack. TitleLabel does not return a proper preferred size, since
- // its getInsets() method depends on its current size. To make it work properly,
- // we first make the size really big.
- fig.setSize(Integer.MAX_VALUE, Integer.MAX_VALUE);
- Dimension imageSize = fig.getPreferredSize(-1, -1);
- fig.setSize(imageSize);
- Image img = new Image(null, imageSize.width, imageSize.height);
- GC gc = new GC(img);
- Graphics graphics = new SWTGraphics(gc);
- fig.paint(graphics);
- graphics.dispose();
- gc.dispose();
- setImage(ImageUtilities.createRotatedImage(img));
- img.dispose();
- }
-}
-
private static class TitleLabel extends Label {
- protected static final Border BORDER = new MarginBorder(0, 3, 0, 3);
+ protected static final Border BORDER = new MarginBorder(4, 3, 4, 3);
protected static final Border TOOL_TIP_BORDER = new MarginBorder(0, 2, 0, 2);
- private static final int H_GAP = 4;
- private static final int LINE_LENGTH = 20;
- private static final int MIN_LINE_LENGTH = 6;
- private boolean horizontal;
public TitleLabel(boolean isHorizontal) {
- super(GEFMessages.Palette_Label);
- horizontal = isHorizontal;
+ super(GEFMessages.Palette_Label, InternalImages.get(InternalImages.IMG_PALETTE));
setLabelAlignment(PositionConstants.LEFT);
setBorder(BORDER);
Label tooltip = new Label(getText());
@@ -1089,78 +1008,32 @@
setToolTip(tooltip);
setForegroundColor(ColorConstants.listForeground);
}
- public Insets getInsets() {
- Insets insets = super.getInsets();
- Dimension diff = getBounds().getCropped(insets).getSize()
- .getDifference(getTextBounds().getSize());
- if (diff.width > 0) {
- insets = new Insets(insets);
- int width = Math.min(LINE_LENGTH + H_GAP, diff.width / 2);
- insets.left += width;
- insets.right += width;
- }
- return insets;
- }
public IFigure getToolTip() {
if (isTextTruncated())
return super.getToolTip();
return null;
}
protected void paintFigure(Graphics graphics) {
- super.paintFigure(graphics);
- org.eclipse.draw2d.geometry.Rectangle area =
- getBounds().getCropped(super.getInsets());
- org.eclipse.draw2d.geometry.Rectangle textBounds = getTextBounds();
- // We reduce the width by 1 because FigureUtilities grows it by 1 unnecessarily
- textBounds.width--;
-
- if (hasFocus())
- graphics.drawFocus(bounds.getResized(-1, -1)
- .intersect(textBounds.getExpanded(getInsets())));
- int lineWidth = Math.min((area.width - textBounds.width - H_GAP * 2) / 2,
- LINE_LENGTH);
- if (lineWidth >= MIN_LINE_LENGTH) {
- int centerY = area.height / 2;
- graphics.setForegroundColor(ColorConstants.buttonLightest);
- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY - 3,
- textBounds.x - H_GAP, centerY - 3);
- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY + 2,
- textBounds.x - H_GAP, centerY + 2);
- graphics.drawLine(textBounds.right() + H_GAP, centerY - 3,
- textBounds.right() + H_GAP + lineWidth, centerY - 3);
- graphics.drawLine(textBounds.right() + H_GAP, centerY + 2,
- textBounds.right() + H_GAP + lineWidth, centerY + 2);
- graphics.setForegroundColor(ColorConstants.buttonDarker);
- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY + 3,
- textBounds.x - H_GAP, centerY + 3);
- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY - 2,
- textBounds.x - H_GAP, centerY - 2);
- graphics.drawLine(textBounds.right() + H_GAP, centerY - 2,
- textBounds.right() + H_GAP + lineWidth, centerY - 2);
- graphics.drawLine(textBounds.right() + H_GAP, centerY + 3,
- textBounds.right() + H_GAP + lineWidth, centerY + 3);
- if (horizontal) {
- graphics.drawPoint(textBounds.x - H_GAP, centerY + 2);
- graphics.drawPoint(textBounds.x - H_GAP, centerY - 3);
- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY - 3);
- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY + 2);
- graphics.setForegroundColor(ColorConstants.buttonLightest);
- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY - 2);
- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY + 3);
- graphics.drawPoint(textBounds.right() + H_GAP, centerY - 2);
- graphics.drawPoint(textBounds.right() + H_GAP, centerY + 3);
- } else {
- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY + 2);
- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY - 3);
- graphics.drawPoint(textBounds.right() + H_GAP, centerY - 3);
- graphics.drawPoint(textBounds.right() + H_GAP, centerY + 2);
- graphics.setForegroundColor(ColorConstants.buttonLightest);
- graphics.drawPoint(textBounds.x - H_GAP, centerY - 2);
- graphics.drawPoint(textBounds.x - H_GAP, centerY + 3);
- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY - 2);
- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY + 3);
- }
+ // paint the gradient
+ graphics.pushState();
+ org.eclipse.draw2d.geometry.Rectangle r = org.eclipse.draw2d.geometry.Rectangle.SINGLETON;
+ r.setBounds(getBounds());
+ graphics.setForegroundColor(ColorConstants.listBackground);
+ graphics.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND);
+ graphics.fillGradient(r, true);
+ graphics.popState();
+
+ // paint the text and icon
+ super.paintFigure(graphics);
+
+ // paint the focus rectangle around the text
+ if (hasFocus()) {
+ org.eclipse.draw2d.geometry.Rectangle textBounds = getTextBounds();
+ // We reduce the width by 1 because FigureUtilities grows it by 1 unnecessarily
+ textBounds.width--;
+ graphics.drawFocus(bounds.getResized(-1, -1)
+ .intersect(textBounds.getExpanded(getInsets())));
}
}
}
@@ -1177,19 +1050,19 @@
size.union(new Dimension(wHint, hHint));
return new org.eclipse.swt.graphics.Point(size.width, size.height);
}
- private Image getButtonImage() {
- Image arrow = null;
+ private int getArrowDirection() {
+ int direction = PositionConstants.EAST;
if (isInState(STATE_EXPANDED | STATE_PINNED_OPEN))
- arrow = dock == PositionConstants.WEST ? LEFT_ARROW : RIGHT_ARROW;
+ direction = dock == PositionConstants.WEST ? PositionConstants.WEST : PositionConstants.EAST;
else
- arrow = dock == PositionConstants.WEST ? RIGHT_ARROW : LEFT_ARROW;
+ direction = dock == PositionConstants.WEST ? PositionConstants.EAST : PositionConstants.WEST;
if (isMirrored()) {
- if (arrow == LEFT_ARROW)
- arrow = RIGHT_ARROW;
+ if (direction == PositionConstants.WEST)
+ direction = PositionConstants.EAST;
else
- arrow = LEFT_ARROW;
+ direction = PositionConstants.WEST;
}
- return arrow;
+ return direction;
}
private String getButtonTooltipText() {
if (isInState(STATE_COLLAPSED))
@@ -1200,7 +1073,7 @@
setCursor(SharedCursors.ARROW);
lws = new LightweightSystem();
lws.setControl(this);
- final ImageButton b = new ImageButton(getButtonImage());
+ final ArrowButton b = new ArrowButton(getArrowDirection());
b.setRolloverEnabled(true);
b.setBorder(new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR));
b.addActionListener(new ActionListener() {
@@ -1215,10 +1088,10 @@
listeners.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals(PROPERTY_STATE)) {
- b.setImage(getButtonImage());
+ b.setDirection(getArrowDirection());
setToolTipText(getButtonTooltipText());
} else if (evt.getPropertyName().equals(PROPERTY_DOCK_LOCATION))
- b.setImage(getButtonImage());
+ b.setDirection(getArrowDirection());
}
});
lws.setContents(b);
@@ -1241,15 +1114,57 @@
}
});
}
- private class ImageButton extends Button {
- public ImageButton(Image img) {
- super();
- setContents(new ImageFigure(img));
- }
- public void setImage(Image img) {
- ((ImageFigure)getChildren().get(0)).setImage(img);
- }
- }
+
+ private class ArrowButton
+ extends Button {
+
+ private Triangle triangle;
+
+ /**
+ * Creates a new instance
+ *
+ * @param direction
+ * the direction the arrow should face (PositionConstants.RIGHT or
+ * PositionConstants.LEFT)
+ */
+ public ArrowButton(int direction) {
+ super();
+ setDirection(direction);
+
+ triangle = new Triangle();
+ triangle.setOutline(true);
+ triangle.setBackgroundColor(ColorConstants.listBackground);
+ triangle.setForegroundColor(ColorConstants.buttonDarkest);
+ setContents(triangle);
+ }
+
+ public void setDirection(int direction) {
+ if (triangle != null) {
+ triangle.setDirection(direction);
+ }
+ }
+
+ protected void layout() {
+ org.eclipse.draw2d.geometry.Rectangle clientArea = getBounds();
+
+ triangle.setBounds(new org.eclipse.draw2d.geometry.Rectangle(clientArea
+ .getCenter().getTranslated(-ARROW_SIZE.width / 2,
+ -ARROW_SIZE.height / 2), ARROW_SIZE));
+ }
+
+ protected void paintFigure(Graphics graphics) {
+ super.paintFigure(graphics);
+
+ // paint the gradient
+ graphics.pushState();
+ org.eclipse.draw2d.geometry.Rectangle r = org.eclipse.draw2d.geometry.Rectangle.SINGLETON;
+ r.setBounds(getBounds());
+ graphics.setForegroundColor(ColorConstants.listBackground);
+ graphics.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND);
+ graphics.fillGradient(r, true);
+ graphics.popState();
+ }
+ }
}
private class TitleCanvas extends Canvas {
@@ -1268,12 +1183,7 @@
return new org.eclipse.swt.graphics.Point(size.width, size.height);
}
private void init(boolean isHorizontal) {
- IFigure fig;
- if (isHorizontal)
- fig = new TitleLabel(true);
- else
- fig = new RotatedTitleLabel();
- final IFigure contents = fig;
+ final IFigure contents = new TitleLabel(true);
contents.setRequestFocusEnabled(true);
contents.setFocusTraversable(true);
contents.addFocusListener(new FocusListener() {
@@ -1381,7 +1291,6 @@
private final String fontName = getFontType();
private List registrants = new ArrayList();
private Font titleFont;
- private boolean newFontCreated = false;
private final IPropertyChangeListener fontListener = new IPropertyChangeListener() {
public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
if (fontName.equals(event.getProperty()))
@@ -1391,27 +1300,9 @@
private FontManager() {
}
protected final Font createTitleFont() {
- newFontCreated = false;
- FontData[] data = JFaceResources.getFont(fontName).getFontData();
- for (int i = 0; i < data.length; i++)
- if ((data[i].getStyle() & SWT.BOLD) == 0) {
- /*
- * @TODO:Pratik need to test this in an environment where there are
- * multiple FontDatas for a font
- */
- // Any problems with style settings (eg., in the case of a font that
- // does not support bold case), will cause the font to ignore that style
- // setting.
- data[i].setStyle(data[i].getStyle() | SWT.BOLD);
- newFontCreated = true;
- }
- if (newFontCreated)
- return new Font(Display.getCurrent(), data);
return JFaceResources.getFont(fontName);
}
protected void dispose() {
- if (newFontCreated && titleFont != null && !titleFont.isDisposed())
- titleFont.dispose();
titleFont = null;
JFaceResources.getFontRegistry().removeListener(fontListener);
}
Index: src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java,v
retrieving revision 1.22
diff -u -r1.22 PaletteEditPartFactory.java
--- src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java 16 Sep 2005 21:08:34 -0000 1.22
+++ src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java 11 Feb 2008 15:13:48 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2000, 2008 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
@@ -19,6 +19,7 @@
import org.eclipse.gef.internal.ui.palette.editparts.SliderPaletteEditPart;
import org.eclipse.gef.internal.ui.palette.editparts.TemplateEditPart;
import org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart;
+import org.eclipse.gef.internal.ui.palette.editparts.ToolbarEditPart;
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteDrawer;
import org.eclipse.gef.palette.PaletteEntry;
@@ -27,6 +28,7 @@
import org.eclipse.gef.palette.PaletteSeparator;
import org.eclipse.gef.palette.PaletteStack;
import org.eclipse.gef.palette.PaletteTemplateEntry;
+import org.eclipse.gef.palette.PaletteToolbar;
/**
* Factory to create EditParts for different PaletteEntries.
@@ -63,6 +65,8 @@
if (PaletteGroup.PALETTE_TYPE_GROUP.equals(type)
|| PaletteContainer.PALETTE_TYPE_UNKNOWN.equals(type))
return createGroupEditPart(parentEditPart, model);
+ if (PaletteToolbar.PALETTE_TYPE_TOOLBAR_GROUP.equals(type))
+ return createToolbarEditPart(parentEditPart, model);
}
if (model instanceof PaletteTemplateEntry)
return createTemplateEditPart(parentEditPart, model);
@@ -118,6 +122,17 @@
}
/**
+ * Create ToolbarEditPart - edit part for PaletteToolbar
+ *
+ * @param parentEditPart the parent of the new editpart to be created
+ * @param model the PaletteToolbar
+ * @return the newly created EditPart
+ */
+protected EditPart createToolbarEditPart(EditPart parentEditPart, Object model) {
+ return new ToolbarEditPart((PaletteToolbar)model);
+}
+
+/**
* Create SliderPaletteEditPart - edit part for PaletteRoot
*
* @param parentEditPart the parent of the new editpart to be created
Index: src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java
===================================================================
RCS file: src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java
diff -N src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.gef.internal.ui.palette.editparts;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+
+import org.eclipse.gef.palette.PaletteToolbar;
+import org.eclipse.gef.ui.palette.PaletteViewerPreferences;
+
+/**
+ * An editpart for the PaletteToolbar
.
+ *
+ * @author crevells
+ * @since 3.4
+ */
+public class ToolbarEditPart
+ extends GroupEditPart {
+
+/**
+ * Creates a new instance.
+ *
+ * @param model
+ * the PaletteToolbar
+ */
+public ToolbarEditPart(PaletteToolbar model) {
+ super(model);
+}
+
+public IFigure createFigure() {
+ IFigure figure = new Figure() {
+
+ protected void paintFigure(Graphics graphics) {
+ super.paintFigure(graphics);
+
+ // draw top border
+ graphics.setForegroundColor(ColorConstants.white);
+ graphics.drawLine(getBounds().getTopLeft(), getBounds()
+ .getTopRight());
+
+ // draw bottom border
+ graphics.setForegroundColor(FigureUtilities.mixColors(
+ ColorConstants.WIDGET_BACKGROUND,
+ ColorConstants.WIDGET_NORMAL_SHADOW, 0.7));
+ graphics.drawLine(getBounds().getBottomLeft().getTranslated(0, -1),
+ getBounds().getBottomRight().getTranslated(0, -1));
+ }
+
+ };
+ figure.setOpaque(true);
+ figure.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND);
+ figure.setBorder(new MarginBorder(2, 1, 1, 1));
+
+ return figure;
+}
+
+protected int getLayoutSetting() {
+ return PaletteViewerPreferences.LAYOUT_ICONS;
+}
+
+protected boolean isToolbarItem() {
+ return true;
+}
+
+}
Index: src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java
===================================================================
RCS file: src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java
diff -N src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.gef.internal.ui.palette;
+
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * A class to keep miscellaneous palette utilities.
+ *
+ * @author crevells
+ * @since 3.4
+ */
+public class PaletteUtil {
+
+private static final Color HOVER_COLOR = new Color(null, 254, 237, 205);
+
+private static final Color SELECTED_COLOR = new Color(null, 224, 233, 246);
+
+private static final Color HOVER_COLOR_HICONTRAST = new Color(null, 0, 128, 0);
+
+private static final Color SELECTED_COLOR_HICONTRAST = new Color(null, 128, 0,
+ 128);
+
+/**
+ * Gets the color to be used when hovering over palette items. The color differs
+ * in high contrast mode.
+ *
+ * @return the hover color
+ * @since 3.4
+ */
+public static Color getHoverColor() {
+ Display display = Display.getCurrent();
+ if (display == null) {
+ display = Display.getDefault();
+ }
+ if (display.getHighContrast()) {
+ return HOVER_COLOR_HICONTRAST;
+ }
+ return HOVER_COLOR;
+}
+
+/**
+ * Gets the color to be used when selecting palette items. The color differs in
+ * high contrast mode.
+ *
+ * @return the selected color
+ * @since 3.4
+ */
+public static Color getSelectedColor() {
+ Display display = Display.getCurrent();
+ if (display == null) {
+ display = Display.getDefault();
+ }
+ if (display.getHighContrast()) {
+ return SELECTED_COLOR_HICONTRAST;
+ }
+ return SELECTED_COLOR;
+}
+}
Index: src/org/eclipse/gef/palette/PaletteToolbar.java
===================================================================
RCS file: src/org/eclipse/gef/palette/PaletteToolbar.java
diff -N src/org/eclipse/gef/palette/PaletteToolbar.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ src/org/eclipse/gef/palette/PaletteToolbar.java 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.gef.palette;
+
+import java.util.List;
+
+/**
+ * A PaletteGroup consists of a group of
+ * {@link org.eclipse.gef.palette.PaletteEntry} objects that are uncollapsible .
+ * The user modification level is set to
+ * {@link PaletteEntry#PERMISSION_NO_MODIFICATION}, meaning that the entries
+ * cannot be reordered.
+ *
+ * @author crevells
+ * @since 3.4
+ */
+public class PaletteToolbar
+ extends PaletteContainer {
+
+/**
+ * Type Identifier for a palette group that looks like a toolbar and only
+ * supports icons mode.
+ *
+ * @since 3.4
+ */
+public static final String PALETTE_TYPE_TOOLBAR_GROUP = "Palette_Toolbar_Group";//$NON-NLS-1$
+
+/**
+ * Creates a new PaletteGroup with the given label
+ *
+ * @param label
+ * the label
+ */
+public PaletteToolbar(String label) {
+ super(label, null, null, PALETTE_TYPE_TOOLBAR_GROUP);
+ setUserModificationPermission(PERMISSION_NO_MODIFICATION);
+}
+
+/**
+ * Creates a new PaletteGroup with the given label and list of
+ * {@link PaletteEntry Palette Entries}.
+ *
+ * @param label
+ * the label
+ * @param children
+ * the list of PaletteEntry children
+ */
+public PaletteToolbar(String label, List children) {
+ this(label);
+ addAll(children);
+}
+
+}
#P org.eclipse.gef.examples.shapes
Index: src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/examples/org.eclipse.gef.examples.shapes/src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java,v
retrieving revision 1.9
diff -u -r1.9 ShapesEditorPaletteFactory.java
--- src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java 29 Sep 2005 22:00:25 -0000 1.9
+++ src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java 11 Feb 2008 15:13:49 -0000
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2005 Elias Volanakis and others.
+ * Copyright (c) 2004, 2008 Elias Volanakis 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
@@ -20,6 +20,7 @@
import org.eclipse.gef.palette.PaletteGroup;
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.palette.PaletteSeparator;
+import org.eclipse.gef.palette.PaletteToolbar;
import org.eclipse.gef.palette.PanningSelectionToolEntry;
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gef.requests.CreationFactory;
@@ -82,18 +83,15 @@
/** Create the "Tools" group. */
private static PaletteContainer createToolsGroup(PaletteRoot palette) {
- PaletteGroup toolGroup = new PaletteGroup("Tools");
+ PaletteToolbar toolbar = new PaletteToolbar("Tools");
// Add a selection tool to the group
ToolEntry tool = new PanningSelectionToolEntry();
- toolGroup.add(tool);
+ toolbar.add(tool);
palette.setDefaultEntry(tool);
// Add a marquee tool to the group
- toolGroup.add(new MarqueeToolEntry());
-
- // Add a (unnamed) separator to the group
- toolGroup.add(new PaletteSeparator());
+ toolbar.add(new MarqueeToolEntry());
// Add (solid-line) connection tool
tool = new ConnectionCreationToolEntry(
@@ -107,7 +105,7 @@
},
ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_s16.gif"),
ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_s24.gif"));
- toolGroup.add(tool);
+ toolbar.add(tool);
// Add (dashed-line) connection tool
tool = new ConnectionCreationToolEntry(
@@ -121,9 +119,9 @@
},
ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_d16.gif"),
ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_d24.gif"));
- toolGroup.add(tool);
+ toolbar.add(tool);
- return toolGroup;
+ return toolbar;
}
/** Utility class. */
#P org.eclipse.draw2d
Index: src/org/eclipse/draw2d/ColorConstants.java
===================================================================
RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.draw2d/src/org/eclipse/draw2d/ColorConstants.java,v
retrieving revision 1.14
diff -u -r1.14 ColorConstants.java
--- src/org/eclipse/draw2d/ColorConstants.java 14 Jan 2008 21:57:29 -0000 1.14
+++ src/org/eclipse/draw2d/ColorConstants.java 11 Feb 2008 15:13:49 -0000
@@ -49,22 +49,29 @@
*/
Color button
= SystemColorFactory.getColor(SWT.COLOR_WIDGET_BACKGROUND);
+Color WIDGET_BACKGROUND = button;
+
/**
* @see SWT#COLOR_WIDGET_NORMAL_SHADOW
*/
Color buttonDarker
= SystemColorFactory.getColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
+Color WIDGET_NORMAL_SHADOW = buttonDarker;
+
/**
* @see SWT#COLOR_WIDGET_DARK_SHADOW
*/
Color buttonDarkest
= SystemColorFactory.getColor(SWT.COLOR_WIDGET_DARK_SHADOW);
+Color WIDGET_DARK_SHADOW = buttonDarkest;
/**
* @see SWT#COLOR_LIST_BACKGROUND
*/
Color listBackground
= SystemColorFactory.getColor(SWT.COLOR_LIST_BACKGROUND);
+Color WIDGET_LIST_BACKGROUND = listBackground;
+
/**
* @see SWT#COLOR_LIST_FOREGROUND
*/
@@ -128,6 +135,8 @@
*/
Color tooltipForeground
= SystemColorFactory.getColor(SWT.COLOR_INFO_FOREGROUND);
+Color INFO_FOREGROUND = tooltipForeground;
+
/**
* @see SWT#COLOR_INFO_BACKGROUND
*/