aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/OutlineOverlay.java
diff options
context:
space:
mode:
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.java107
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);
- }
- }
-
-}