summaryrefslogtreecommitdiff
path: root/propertysheet/src/org/eclipse/wb/core/controls/CFlatButton.java
diff options
context:
space:
mode:
Diffstat (limited to 'propertysheet/src/org/eclipse/wb/core/controls/CFlatButton.java')
-rw-r--r--propertysheet/src/org/eclipse/wb/core/controls/CFlatButton.java160
1 files changed, 0 insertions, 160 deletions
diff --git a/propertysheet/src/org/eclipse/wb/core/controls/CFlatButton.java b/propertysheet/src/org/eclipse/wb/core/controls/CFlatButton.java
deleted file mode 100644
index 156cf5e..0000000
--- a/propertysheet/src/org/eclipse/wb/core/controls/CFlatButton.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Google, Inc.
- * 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:
- * Google, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wb.core.controls;
-
-import org.eclipse.wb.draw2d.IColorConstants;
-import org.eclipse.wb.internal.core.utils.ui.DrawUtils;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * Class representing flat push button as it looks in Mac OSX.
- *
- * It doesn't draw text, not need for now. ;-)
- *
- * @author mitin_aa
- */
-public final class CFlatButton extends Canvas {
- // colors
- private static final Color COLOR_FACE = DrawUtils.getShiftedColor(IColorConstants.button, 12);
- private static final Color COLOR_FACE_SELECTED = IColorConstants.buttonDarker;
- private static final Color COLOR_BORDER_GRADIENT1 = DrawUtils.getShiftedColor(
- IColorConstants.button,
- -12);
- private static final Color COLOR_BORDER_GRADIENT1_SELECTED = DrawUtils.getShiftedColor(
- IColorConstants.buttonDarker,
- 64);
- private static final Color COLOR_BORDER_GRADIENT2 = DrawUtils.getShiftedColor(COLOR_FACE, -8);
- private static final Color COLOR_BORDER_GRADIENT2_SELECTED = DrawUtils.getShiftedColor(
- COLOR_FACE_SELECTED,
- -8);
- // fields
- private Image m_image;
- private boolean m_down;
- private boolean m_selected;
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Constructor
- //
- ////////////////////////////////////////////////////////////////////////////
- public CFlatButton(Composite parent, int style) {
- super(parent, style);
- addPaintListener(new PaintListener() {
- public void paintControl(PaintEvent e) {
- boolean isSelected = m_down | m_selected;
- Color faceColor = isSelected ? COLOR_FACE_SELECTED : COLOR_FACE;
- Color borderGradientColor1 =
- isSelected ? COLOR_BORDER_GRADIENT1_SELECTED : COLOR_BORDER_GRADIENT1;
- Color borderGradientColor2 =
- isSelected ? COLOR_BORDER_GRADIENT2_SELECTED : COLOR_BORDER_GRADIENT2;
- GC gc = e.gc;
- Rectangle ca = getClientArea();
- // draw client area
- // dark border
- gc.setForeground(IColorConstants.buttonDarker);
- gc.drawRectangle(ca.x, ca.y, ca.width - 1, ca.height - 1);
- cropClientArea(ca);
- // gradient border
- gc.setForeground(borderGradientColor1);
- gc.setBackground(borderGradientColor2);
- gc.fillGradientRectangle(ca.x, ca.y, ca.width, ca.height, true);
- cropClientArea(ca);
- // fill background
- gc.setBackground(faceColor);
- gc.fillRectangle(ca);
- // draw face upper-half gradient
- Rectangle ca1 = getClientArea();
- cropClientArea(ca1);
- gc.setForeground(faceColor);
- gc.setBackground(borderGradientColor1);
- gc.fillGradientRectangle(ca1.x, ca1.y, ca1.width, ca1.height / 4, true);
- // draw face down-half gradient
- ca1.x += 1;
- ca1.width -= 2;
- gc.setForeground(borderGradientColor1);
- gc.setBackground(faceColor);
- gc.fillGradientRectangle(ca1.x, ca1.y + ca1.height / 4 - 1, ca1.width, ca1.height / 2, true);
- // draw image
- Image image = getImage();
- if (image != null) {
- Rectangle imageBounds = image.getBounds();
- // center it in client area
- int x = ca.x + (ca.width - imageBounds.width) / 2;
- int y = ca.y + (ca.height - imageBounds.height) / 2;
- gc.drawImage(image, x, y);
- }
- }
- });
- addListener(SWT.MouseDown, new Listener() {
- public void handleEvent(Event e) {
- m_down = true;
- redraw();
- }
- });
- addListener(SWT.MouseUp, new Listener() {
- public void handleEvent(Event e) {
- m_down = false;
- redraw();
- update();
- if (getClientArea().contains(e.x, e.y)) {
- fireSelectionEvent(e.time, e.stateMask);
- }
- }
- });
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Utils
- //
- ////////////////////////////////////////////////////////////////////////////
- private void fireSelectionEvent(int time, int stateMask) {
- Event event = new Event();
- event.time = time;
- event.stateMask = stateMask;
- notifyListeners(SWT.Selection, event);
- }
-
- private void cropClientArea(Rectangle ca) {
- ca.x += 1;
- ca.y += 1;
- ca.width -= 2;
- ca.height -= 2;
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Access
- //
- ////////////////////////////////////////////////////////////////////////////
- public final Image getImage() {
- return m_image;
- }
-
- public void setImage(Image image) {
- m_image = image;
- }
-
- public void setSelected(boolean selected) {
- m_selected = selected;
- }
-}