/*
* Copyright (c) 2009 Kathryn Huxtable and Kenneth Orr.
*
* This file is part of the SeaGlass Pluggable Look and Feel.
*
* Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
*
* 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.
*
* $Id$
*/
package com.seaglasslookandfeel.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 SeaGlassPainter<T> extends javax.swing.Painter<T>, com.sun.java.swing.Painter<T> {
/**
* Renders to the given {@link 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);
}