//PlaneWaveMenuPanel.java
import java.awt.*;

public class PlaneWaveMenuPanel extends Panel{
    //private static final Color bgcolor = Color.lightGray;
    private static final Color bgcolor = new Color(236,236,236);
    public Button b1, b2, b3;
    public Checkbox EHbox, SDbox;
    public boolean show_delta;
    public Scrollbar slider1;
    public int SCROLLMIN=900, SCROLLMAX=1001;
    private int SleepTime = 10;
    public Choice c1;
    PlaneWave_State state;
    
    public PlaneWaveMenuPanel(PlaneWave_State state){
	super();
        this.state = state;
        setLayout(null);
	setBackground(bgcolor);
        
        show_delta = false;
        
        
	b1 = new Button("General Input");
        b1.setBackground(Color.white);
	b2 = new Button("Examples");
	b2.setBackground(Color.white);
        b3 = new Button("Instructions");
        b3.setBackground(Color.white);
	//add(b1);
	//add(b2);
	add(b3);
        
        EHbox = new Checkbox(" Envelope",null,true);
        SDbox = new Checkbox("",null,true);
        //SDbox.setEnabled(false);
        SDbox.setVisible(false);
                
	//add(EHbox);
	EHbox.setBackground(bgcolor);
        //add(SDbox);
	SDbox.setBackground(bgcolor);       
        
        b2.setBounds(5,3,95,20);
        b1.setBounds(105,3,95,20);
        
        b3.setBounds(state.s200,state.s15,state.s95,state.s22);
        b3.setFont(new Font("SanSerif",Font.PLAIN,state.font11));
        Panel pb1 = new Panel();
            pb1.setBackground(Color.cyan);
            add(pb1);
            pb1.setBounds(state.s200-1,state.s15-1,state.s95+2,state.s22+2);
        Panel pb2 = new Panel();
            pb2.setBackground(Color.black);
            add(pb2);
            pb2.setBounds(state.s200-2,state.s15-2,state.s95+4,state.s22+4);
            
        EHbox.setBounds(15,19,90,20);
        SDbox.setBounds(110,19,20,20);
        
        slider1 = new Scrollbar(Scrollbar.HORIZONTAL,990,1,SCROLLMIN,SCROLLMAX);
	slider1.setBounds(state.s23,state.s18,state.s160,state.s15);
        slider1.setBackground(Color.white);
	add(slider1);
        Panel p1 = new Panel();
	    p1.setBackground(Color.black);
	    add(p1);
	    p1.setBounds(state.s23-1,state.s18-1,state.s160+2,state.s15+2);
    }
    
    public void paint(Graphics g){
	g.setColor(bgcolor);	
	g.fillRect(0,0,getSize().width-1,getSize().height-1);
	
        
        Graphics2D g2d = (Graphics2D)g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
            
        g.setColor(Color.black);
            int starty = state.s18;
            int startx = state.s20;
            int sety = starty+state.s30;
            int sety2 = starty+state.s25;
            MaestroG.subscripter("Animation speed","","",g,state.font11,startx+state.s40,sety);
            
            g.setColor(Color.blue.darker());
            drawArrowNew(startx+state.s15,sety2,2,g);
            drawArrowNew(startx+state.s22,sety2,2,g);

            g.setColor(Color.red.darker());
            drawArrowNew(startx+state.s142,sety2,1,g);
            drawArrowNew(startx+state.s149,sety2,1,g);
    }
    
    public void drawArrowNew(int x, int y, int tipo, Graphics g){
	Graphics2D g2d = (Graphics2D)g;
	 
        switch (tipo){
	   case 1://ArrowRightSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
          	Polygon pK = new Polygon();
		pK.addPoint(x+state.s2, y-state.s2);
		pK.addPoint(x+state.s2, y+state.s2);
		pK.addPoint(x+state.s7,y);
		g.drawPolygon(pK);
		g.fillPolygon(pK);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
	   
	   break;
           
           case 2://ArrowLeftSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                Polygon pL = new Polygon();
		pL.addPoint(x-state.s2, y-state.s2);
		pL.addPoint(x-state.s2, y+state.s2);
		pL.addPoint(x-state.s7,y);
		g.drawPolygon(pL);
		g.fillPolygon(pL);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
 
	   break;
          
	}
    }
}