package org.eclipse.nebula.widgets.nattable.core.layer

import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext

interface LayerPainter<T extends Layer> {
	
	/**
	 * @param layer The layer to render.
	 * @param layerPaintBounds The rectangular pixel area to paint into. The coordinates of this rectangle are relative to this layer itself.
	 * @param gc The graphics context to render into.
	 */
	def void paintLayer(T layer, PixelRectangle layerPaintBounds, GraphicsContext gc)
	
}