/*
* Copyright (c) 2005 Matthew Hall 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:
* Matthew Hall - initial API and implementation
*/
package org.eclipse.nebula.paperclips.core;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
/**
* A piece of a Print, which is capable of drawing itself on a graphics device.
* PrintPiece objects are created by a PrintIterator.
*
* @author Matthew
*/
public interface PrintPiece {
/**
* Returns the dimensions of this PrintPiece, in pixels.
*
* @return the dimensions of this PrintPiece, in pixels.
*/
public Point getSize();
/**
* Draws this PrintPiece on the given graphics device, at the given
* coordinates.
*
* @param gc
* a graphics context for the graphics device.
* @param x
* the x coordinate where this PrintPiece will be drawn.
* @param y
* the x coordinate where this PrintPiece will be drawn.
*/
public void paint(GC gc, int x, int y);
/**
* Disposes the system resources allocated by this PrintPiece. The dispose
* method is <b>not</b> a permanent disposal of a PrintPiece. It is intended
* to reclaim system resources, however future calls to paint(GC,int,int)
* may require that the resources be allocated again.
*/
public void dispose();
}