import java.awt.*;

/**
 * A Canvas that is used by an RGBRenderer to display video.
 *
 * This particular implementation can only be used with an
 * RGBRenderer.
 *
 * @version 1.0
 * @author  Prof. David Bernstein, James Madison University
 */
public class RendererCanvas extends Canvas
{

    RGBRenderer       renderer;


    /**
     * Constructor
     *
     * @param renderer The RGBRenderer that determines the size
     */
    public RendererCanvas(RGBRenderer renderer)
    {
	this.renderer = renderer;
    }



    /**
     * Get the minimum size of this Canvas
     */
    public Dimension getMinimumSize() 
    {
	return renderer.getSize();
    }




    /**
     * Get the preferred size of this Canvas
     */
    public Dimension getPreferredSize() 
    {
	return getMinimumSize();
    }


    /**
     * Update this Component
     *
     * @param g   The Graphics context
     */
    public void update(Graphics g) 
    {
	// Do nothing
    }


    /**
     * Paint this Component
     *
     * @param g   The Graphics context
     */
    public void paint(Graphics g) 
    {
	// This method needs to handle repaints when the
	// movie is paused
	renderer.paintImage(g);
    }
}
