package cnp.ew.displayer;
import java.awt.*;
import cnp.ew.lightweight.*;

final public class CpButtonBorderDisplayer extends CpAbstractBorderDisplayer
{
    // These two have been made public to satisfy IE 3.0 only
    public boolean isDefault;
    public Cp3DBorderDisplayer innerDisplayer;


    public CpButtonBorderDisplayer()
    {
        isDefault = false;
        innerDisplayer = new Cp3DBorderDisplayer(true, false);
    }

    public void setIsDefault(boolean isDefault)
    {
        this.isDefault = isDefault;
    }

    /**
     * Display the borders in rect, using g.
     */
    public void paintBordersIn(CpLightweightComponent c, Graphics g, int x, int y, int w, int h)
    {
        int innerX = x;
        int innerY = y;
        int innerW = w;
        int innerH = h;

        if (isDefault) {
            g.setColor(Color.black);
            g.drawRect(x, y, w - 1, h - 1);
            innerX++;
            innerY++;
            innerW -= 2;
            innerH -= 2;
        }

        innerDisplayer.paintBordersIn(c, g, innerX, innerY, innerW, innerH);
    }


    public int getLeftBorderThickness(CpLightweightComponent c)
    {
        return innerDisplayer.getLeftBorderThickness(c) + (isDefault ? 1 : 0);
    }

    public int getRightBorderThickness(CpLightweightComponent c)
    {
        return innerDisplayer.getRightBorderThickness(c) + (isDefault ? 1 : 0);
    }

    public int getTopBorderThickness(CpLightweightComponent c)
    {
        return innerDisplayer.getTopBorderThickness(c) + (isDefault ? 1 : 0);
    }

    public int getBottomBorderThickness(CpLightweightComponent c)
    {
        return innerDisplayer.getBottomBorderThickness(c) + (isDefault ? 1 : 0);
    }

    public void setReverse3D(boolean setReverse3D)
    {
        innerDisplayer.setReverse3D(setReverse3D);
    }

    public void setRaised(boolean raised)
    {
        innerDisplayer.setRaised(raised);
    }
}