diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/HoverOverlay.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/HoverOverlay.java | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/HoverOverlay.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/HoverOverlay.java deleted file mode 100644 index 2e7c559db..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/HoverOverlay.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.eclipse.org/org/documents/epl-v10.php - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ide.eclipse.adt.internal.editors.layout.gle2; - -import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.SwtDrawingStyle.HOVER; -import static com.android.ide.eclipse.adt.internal.editors.layout.gle2.SwtDrawingStyle.HOVER_SELECTION; - -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Device; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Rectangle; - -import java.util.List; - -/** - * The {@link HoverOverlay} paints an optional hover on top of the layout, - * highlighting the currently hovered view. - */ -public class HoverOverlay extends Overlay { - private final LayoutCanvas mCanvas; - - /** Hover border color. Must be disposed, it's NOT a system color. */ - private Color mHoverStrokeColor; - - /** Hover fill color. Must be disposed, it's NOT a system color. */ - private Color mHoverFillColor; - - /** Hover border select color. Must be disposed, it's NOT a system color. */ - private Color mHoverSelectStrokeColor; - - /** Hover fill select color. Must be disposed, it's NOT a system color. */ - private Color mHoverSelectFillColor; - - /** Vertical scaling & scrollbar information. */ - private CanvasTransform mVScale; - - /** Horizontal scaling & scrollbar information. */ - private CanvasTransform mHScale; - - /** - * Current mouse hover border rectangle. Null when there's no mouse hover. - * The rectangle coordinates do not take account of the translation, which - * must be applied to the rectangle when drawing. - */ - private Rectangle mHoverRect; - - /** - * Constructs a new {@link HoverOverlay} linked to the given view hierarchy. - * - * @param canvas the associated canvas - * @param hScale The {@link CanvasTransform} to use to transfer horizontal layout - * coordinates to screen coordinates. - * @param vScale The {@link CanvasTransform} to use to transfer vertical layout - * coordinates to screen coordinates. - */ - public HoverOverlay(LayoutCanvas canvas, CanvasTransform hScale, CanvasTransform vScale) { - mCanvas = canvas; - mHScale = hScale; - mVScale = vScale; - } - - @Override - public void create(Device device) { - if (SwtDrawingStyle.HOVER.getStrokeColor() != null) { - mHoverStrokeColor = new Color(device, SwtDrawingStyle.HOVER.getStrokeColor()); - } - if (SwtDrawingStyle.HOVER.getFillColor() != null) { - mHoverFillColor = new Color(device, SwtDrawingStyle.HOVER.getFillColor()); - } - - if (SwtDrawingStyle.HOVER_SELECTION.getStrokeColor() != null) { - mHoverSelectStrokeColor = new Color(device, - SwtDrawingStyle.HOVER_SELECTION.getStrokeColor()); - } - if (SwtDrawingStyle.HOVER_SELECTION.getFillColor() != null) { - mHoverSelectFillColor = new Color(device, - SwtDrawingStyle.HOVER_SELECTION.getFillColor()); - } - } - - @Override - public void dispose() { - if (mHoverStrokeColor != null) { - mHoverStrokeColor.dispose(); - mHoverStrokeColor = null; - } - - if (mHoverFillColor != null) { - mHoverFillColor.dispose(); - mHoverFillColor = null; - } - - if (mHoverSelectStrokeColor != null) { - mHoverSelectStrokeColor.dispose(); - mHoverSelectStrokeColor = null; - } - - if (mHoverSelectFillColor != null) { - mHoverSelectFillColor.dispose(); - mHoverSelectFillColor = null; - } - } - - /** - * Sets the hover rectangle. The coordinates of the rectangle are in layout - * coordinates. The recipient is will own this rectangle. - * <p/> - * TODO: Consider switching input arguments to two {@link LayoutPoint}s so - * we don't have ambiguity about the coordinate system of these input - * parameters. - * <p/> - * - * @param x The top left x coordinate, in layout coordinates, of the hover. - * @param y The top left y coordinate, in layout coordinates, of the hover. - * @param w The width of the hover (in layout coordinates). - * @param h The height of the hover (in layout coordinates). - */ - public void setHover(int x, int y, int w, int h) { - mHoverRect = new Rectangle(x, y, w, h); - } - - /** - * Removes the hover for the next paint. - */ - public void clearHover() { - mHoverRect = null; - } - - @Override - public void paint(GC gc) { - if (mHoverRect != null) { - // Translate the hover rectangle (in canvas coordinates) to control - // coordinates - int x = mHScale.translate(mHoverRect.x); - int y = mVScale.translate(mHoverRect.y); - int w = mHScale.scale(mHoverRect.width); - int h = mVScale.scale(mHoverRect.height); - - - boolean hoverIsSelected = false; - List<SelectionItem> selections = mCanvas.getSelectionManager().getSelections(); - for (SelectionItem item : selections) { - if (mHoverRect.equals(item.getViewInfo().getSelectionRect())) { - hoverIsSelected = true; - break; - } - } - - Color stroke = hoverIsSelected ? mHoverSelectStrokeColor : mHoverStrokeColor; - Color fill = hoverIsSelected ? mHoverSelectFillColor : mHoverFillColor; - - if (stroke != null) { - int oldAlpha = gc.getAlpha(); - gc.setForeground(stroke); - gc.setLineStyle(hoverIsSelected ? - HOVER_SELECTION.getLineStyle() : HOVER.getLineStyle()); - gc.setAlpha(hoverIsSelected ? - HOVER_SELECTION.getStrokeAlpha() : HOVER.getStrokeAlpha()); - gc.drawRectangle(x, y, w, h); - gc.setAlpha(oldAlpha); - } - - if (fill != null) { - int oldAlpha = gc.getAlpha(); - gc.setAlpha(hoverIsSelected ? - HOVER_SELECTION.getFillAlpha() : HOVER.getFillAlpha()); - gc.setBackground(fill); - gc.fillRectangle(x, y, w, h); - gc.setAlpha(oldAlpha); - } - } - } -} |