package com.explodingpixels.painter;
import java.awt.Graphics2D;
/**
* An interface that allows painting to be delegated. The implementation of this interface will be called during the
* painting process of the given {@code objectToPaint}.
*/
public interface MacWidgetsPainter<T> {
/**
* Renders to the given {@link java.awt.Graphics2D}. The supplied graphics context may be modified - it's
* state need not be restored upon completion of painting.
*
* @param graphics the graphics context to paint into. It's state need not be restored. Will not
* be null.
* @param objectToPaint the object to be painted.
* @param width the width within the object to paint.
* @param height the height within the object to paint.
*/
void paint(Graphics2D graphics, T objectToPaint, int width, int height);
}