diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineOverlay.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineOverlay.java | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineOverlay.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineOverlay.java deleted file mode 100644 index e63fff7ab..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineOverlay.java +++ /dev/null @@ -1,107 +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 org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Device; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Rectangle; - -/** - * The {@link OutlineOverlay} paints an optional outline on top of the layout, - * showing the structure of the individual Android View elements. - */ -public class OutlineOverlay extends Overlay { - /** The {@link ViewHierarchy} this outline visualizes */ - private final ViewHierarchy mViewHierarchy; - - /** Outline color. Must be disposed, it's NOT a system color. */ - private Color mOutlineColor; - - /** Vertical scaling & scrollbar information. */ - private CanvasTransform mVScale; - - /** Horizontal scaling & scrollbar information. */ - private CanvasTransform mHScale; - - /** - * Constructs a new {@link OutlineOverlay} linked to the given view - * hierarchy. - * - * @param viewHierarchy The {@link ViewHierarchy} to render - * @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 OutlineOverlay( - ViewHierarchy viewHierarchy, - CanvasTransform hScale, - CanvasTransform vScale) { - super(); - mViewHierarchy = viewHierarchy; - mHScale = hScale; - mVScale = vScale; - } - - @Override - public void create(Device device) { - mOutlineColor = new Color(device, SwtDrawingStyle.OUTLINE.getStrokeColor()); - } - - @Override - public void dispose() { - if (mOutlineColor != null) { - mOutlineColor.dispose(); - mOutlineColor = null; - } - } - - @Override - public void paint(GC gc) { - CanvasViewInfo lastRoot = mViewHierarchy.getRoot(); - if (lastRoot != null) { - gc.setForeground(mOutlineColor); - gc.setLineStyle(SwtDrawingStyle.OUTLINE.getLineStyle()); - int oldAlpha = gc.getAlpha(); - gc.setAlpha(SwtDrawingStyle.OUTLINE.getStrokeAlpha()); - drawOutline(gc, lastRoot); - gc.setAlpha(oldAlpha); - } - } - - private void drawOutline(GC gc, CanvasViewInfo info) { - Rectangle r = info.getAbsRect(); - - int x = mHScale.translate(r.x); - int y = mVScale.translate(r.y); - int w = mHScale.scale(r.width); - int h = mVScale.scale(r.height); - - // Add +1 to the width and +1 to the height such that when you have a - // series of boxes (in say a LinearLayout), instead of the bottom of one - // box and the top of the next box being -adjacent-, they -overlap-. - // This makes the outline nicer visually since you don't get - // "double thickness" lines for all adjacent boxes. - gc.drawRectangle(x, y, w + 1, h + 1); - - for (CanvasViewInfo vi : info.getChildren()) { - drawOutline(gc, vi); - } - } - -} |