package cnp.ew.tdemo;

import java.awt.*;

import cnp.ew.displayer.*;
import cnp.ew.image.*;
import cnp.ew.util.*;
import cnp.ew.lightweight.*;
import cnp.ew.diagram.*;

public class CpWindowBackgroundLc extends CpBackgroundLc
{
    static int winiconId;
    static int iconizeId;
    static int maximizeId;
    static int closeId;

    static {
        winiconId = CpToolkit.registerImageName("winicon.gif");
        iconizeId = CpToolkit.registerImageName("iconize.gif");
        maximizeId = CpToolkit.registerImageName("maximize.gif");
        closeId = CpToolkit.registerImageName("close.gif");
    }

    static Cp3DBorderDisplayer borderDisplayer = new Cp3DBorderDisplayer(true, false, true);
    String title = "New Window";

    public CpWindowBackgroundLc(int x, int y, int w, int h)
    {
        super(x, y, w, h);
    }

	public void paint(Graphics g, Rectangle clip)
	{
	    double scale = getScale();
        g.setColor(Color.lightGray);
        Rectangle r = new Rectangle(0, 0, (int)(size().width * scale), (int)(size().height * scale));
        g.fillRect(r.x, r.y, r.width, r.height);
	    borderDisplayer.paintIn(this, g, r.x, r.y, r.width, r.height);
	    if (clip.y > (r.x + (22 * scale))) {
	            return;
	    }

	    g.setColor(new Color(0, 0, 128));
	    g.fillRect(r.x + (int)(4 *scale), r.y + (int)(4 * scale), r.width - (int)(8 * scale), (int)(18 * scale));
	    g.setColor(Color.white);
	    if ((int)scale == 1) {
    	    g.setFont(new Font("Dialog", Font.BOLD, 12));
    	} else {
    	    g.setFont(new Font("Helvetica", Font.BOLD, (int)(12 * scale)));
    	}
	    g.drawString(title, r.x + (int)(25 * scale), r.y + (int)(17 * scale));

        Image image = CpToolkit.getImage(winiconId);
        Dimension imageDim = new Dimension(image.getWidth(CpToolkit.defaultComponent()), image.getHeight(CpToolkit.defaultComponent()));

		g.drawImage(CpToolkit.getImage(winiconId), r.x + (int)(6 * scale), r.y + (int)(5 * scale), (int)(imageDim.width * scale), (int)(imageDim.height * scale), CpToolkit.defaultComponent());

        image = CpToolkit.getImage(iconizeId);
        imageDim = new Dimension(image.getWidth(CpToolkit.defaultComponent()), image.getHeight(CpToolkit.defaultComponent()));

		g.drawImage(CpToolkit.getImage(iconizeId), r.x + r.width - (int)(56 * scale), r.y + (int)(6 * scale), (int)(imageDim.width * scale), (int)(imageDim.height * scale), CpToolkit.defaultComponent());
		g.drawImage(CpToolkit.getImage(maximizeId), r.x + r.width - (int)(40 * scale), r.y + (int)(6 * scale), (int)(imageDim.width * scale), (int)(imageDim.height * scale), CpToolkit.defaultComponent());
		g.drawImage(CpToolkit.getImage(closeId), r.x + r.width - (int)(22 * scale), r.y + (int)(6 * scale), (int)(imageDim.width * scale), (int)(imageDim.height * scale), CpToolkit.defaultComponent());
	}
}
