blob: b31ad7df0cc568e781b40f0d23079e008363fd28 [file] [log] [blame]
// RAP [bm]: animations
///*******************************************************************************
// * Copyright (c) 2007 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.ui.internal;
//
//import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.List;
//
//import org.eclipse.jface.util.Geometry;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.events.PaintEvent;
//import org.eclipse.swt.events.PaintListener;
//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.Display;
//import org.eclipse.swt.widgets.Shell;
//import org.eclipse.ui.internal.AnimationEngine;
//
///**
// * Creates an animation effect where the interpolated rectangles are displayed using Canvas
// * controls that show an image of the bits that were originally occupied by the various
// * 'start' rectangles.
// *
// * @since 3.3
// *
// */
//public class RectangleAnimationImageFeedback extends
// RectangleAnimationFeedbackBase {
// private class ImageCanvas extends Canvas {
// private Image image;
//
// /**
// * @param parent
// * @param style
// */
// public ImageCanvas(Composite parent, int style, Image image) {
// super(parent, style);
// this.image = image;
//
// addPaintListener(new PaintListener() {
// public void paintControl(PaintEvent e) {
// paintImage(e.gc);
// }
// });
// }
//
// /**
// * @param gc
// */
// protected void paintImage(GC gc) {
// gc.drawImage(image, 0, 0, image.getBounds().width, image
// .getBounds().height, 0, 0, getBounds().width,
// getBounds().height);
// }
//
// /* (non-Javadoc)
// * @see org.eclipse.swt.widgets.Widget#dispose()
// */
// public void dispose() {
// super.dispose();
// image.dispose();
// }
// }
//
// private Image backingStore;
// private Shell theShell;
// private Display display;
// private List controls = new ArrayList();
//
//
// public RectangleAnimationImageFeedback(Shell parentShell, Rectangle start,
// Rectangle end) {
// super(parentShell, start, end);
// }
//
// public void dispose() {
// backingStore.dispose();
// for (Iterator ctrlIter = controls.iterator(); ctrlIter.hasNext();) {
// ImageCanvas canvas = (ImageCanvas) ctrlIter.next();
// canvas.dispose();
// }
//
// theShell.setVisible(false);
// theShell.dispose();
// }
//
// public void initialize(AnimationEngine engine) {
// display = getAnimationShell().getDisplay();
//
// Rectangle psRect = getAnimationShell().getBounds();
// theShell = new Shell(getAnimationShell(), SWT.NO_TRIM | SWT.ON_TOP);
// theShell.setBounds(getAnimationShell().getBounds());
//
// // Capture the background image
// backingStore = new Image(theShell.getDisplay(), psRect);
// GC gc = new GC(display);
// gc.copyArea(backingStore, psRect.x, psRect.y);
// gc.dispose();
//// changeCoordinates();
//// captureImages();
// theShell.setBackgroundImage(backingStore);
// theShell.setVisible(true);
// display.update();
//
// }
//
// /* (non-Javadoc)
// * @see org.eclipse.ui.internal.RectangleAnimationFeedbackBase#jobInit(org.eclipse.ui.internal.AnimationEngine)
// */
// public boolean jobInit(AnimationEngine engine) {
// changeCoordinates();
// captureImages();
// return super.jobInit(engine);
// }
//
// public void addStartRect(Rectangle rect) {
// if (rect == null)
// return;
//
// // Rectangle start = Geometry.toControl(getAnimationShell(), rect);
// super.addStartRect(rect);
//
// }
//
// public void addEndRect(Rectangle rect) {
// if (rect != null) {
// // Rectangle end = Geometry.toControl(getAnimationShell(), rect);
// super.addEndRect(rect);
// }
// }
//
// public void renderStep(AnimationEngine engine) {
// Iterator ctrlIter = controls.iterator();
// Iterator currentRects = getCurrentRects(engine.amount()).iterator();
// while (currentRects.hasNext()) {
// ImageCanvas canvas = (ImageCanvas) ctrlIter.next();
// canvas.setBounds((Rectangle) currentRects.next());
// }
// display.update();
//
// }
//
// public void changeCoordinates() {
// Iterator startRectIter = getStartRects().iterator();
// Iterator endRectIter = getEndRects().iterator();
// while (startRectIter.hasNext()) {
// Rectangle startRect = (Rectangle) startRectIter.next();
// Rectangle mapStartRect = Geometry.toControl(theShell, startRect);
// startRect.x = mapStartRect.x;
// startRect.y = mapStartRect.y;
// Rectangle endRect = (Rectangle) endRectIter.next();
// Rectangle mapEndRect = Geometry.toControl(theShell, endRect);
// endRect.x = mapEndRect.x;
// endRect.y = mapEndRect.y;
// }
// }
//
// private void captureImages() {
//
// for (Iterator iterator = getStartRects().iterator(); iterator.hasNext();) {
// Rectangle rect = (Rectangle) iterator.next();
// Image image = new Image(display, rect.width, rect.height);
// GC gc = new GC(backingStore);
// gc.copyArea(image, rect.x, rect.y);
// gc.dispose();
// ImageCanvas canvas = new ImageCanvas(theShell, SWT.BORDER
// | SWT.NO_BACKGROUND, image);
// controls.add(canvas);
//
// }
// }
//
//}