import java.awt.*;
import java.applet.*;
import drawarea;

public class toolbox extends Panel
{
    int n;
    int status = 0;
    Color cstat = new Color(254,254,254);
    drawarea parent;

    toolbox()
    {
        setBackground(Color.white);
    }

    public void paint(Graphics g) 
    {
        Rectangle r = bounds();


        for(int i=0;i<5;i++)
        {
            if(i==status)
            {
                g.setColor(new Color(192,192,192));
                g.fillRect(0,i*33,32,32);
            }
            g.setColor(Color.black);
            g.drawLine(0,i*33+32,32,i*33+32);
            if(i==0)
            {
                Polygon p = new Polygon();
                p.addPoint(24,i*33+8);
                p.addPoint(16,i*33+8);
                p.addPoint(24,i*33+16);
                g.fillPolygon(p);
                g.drawLine(8,i*33+24,20,i*33+12);
            }
            else if(i==1)
            {
                g.drawLine(8,i*33+24,24,i*33+8);
            }
            else if(i==2)
            {
                g.setColor(cstat);
                g.fillRect(8,i*33+8,16,16);
                g.setColor(Color.black);
                g.drawRect(8,i*33+8,16,16);
            }
            else if(i==3)
            {
                g.setColor(cstat);
                g.fillOval(8,i*33+8,16,16);
                g.setColor(Color.black);
                g.drawOval(8,i*33+8,16,16);
            }
            else if(i==4)
            {
                Polygon p = new Polygon();
                p.addPoint(8,i*33+8);
                p.addPoint(16,i*33+24);
                p.addPoint(24,i*33+8);
                p.addPoint(16,i*33+12);
                p.addPoint(8,i*33+8);
                g.setColor(cstat);
                g.fillPolygon(p);
                g.setColor(Color.black);
                g.drawPolygon(p);
            }
        }
        for(int j = 0;j<9;j++)
            for(int i = 0;i<3;i++)
            {
                g.setColor(new Color((j%3)*127,(j/3)*127,i*127));
                g.fillRect(2+i*9,180+j*9,9,9);
            }
        g.setColor(Color.black);
        for(int i = 0;i<=9;i++)
            g.drawLine(2,180+i*9,29,180+i*9);
        for(int i = 0;i<=3;i++)
            g.drawLine(2+i*9,180,2+i*9,180+81);
    }

    public Dimension preferredSize()
    {
        return(new Dimension(32,32));
    }

    public boolean mouseDown(Event e,int x,int y)
    {
        if(y<5*33)
        {
            int oldstatus = status;
            status = y/33;
            if(status<0) status = 0;
            if(status>4) status = 3;
            if(oldstatus!=status)
            {
                parent.newstatus(status);
                repaint();
            }
        }
        else if(y>180 && y<180+81)
        {
            int xx = ((x-2)/9);
            int yy = ((y-180)/9);
            if(xx<0) xx = 0;
            if(xx>2) xx = 2;
            if(yy<0) yy = 0;
            if(yy>8) yy = 8;
            parent.newcolor(new Color((yy%3)*127,(yy/3)*127,xx*127));
            if(status!=0)
            {
                cstat = new Color((yy%3)*127,(yy/3)*127,xx*127);
                repaint();
            }
        }
        return(true);
    }
}

