/* * DisplaySelector.java * * Created on March 10, 2006, 7:50 AM */ package Current.popups.BilliardPath; import Current.*; import Current.manage.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import org.pat.graphics.boxed.ListenString; /** * * @author pat */ public class DisplaySelector extends Canvas implements MouseListener { DisplayContainer DC; ListenString[] LS=new ListenString[3]; static final int padding=4; /** Creates a new instance of DisplaySelector */ public DisplaySelector(DisplayContainer DC) { setBackground(Color.blue); setFont(new Font("sanserif", Font.PLAIN, 12)); this.DC=DC; LS[0]=new ListenString(DC.modes[DC.getMode()],DC.modes,this); LS[1]=new ListenString("?",this); LS[2]=new ListenString("+",this); for (int i=0; i<3; i++) { LS[i].setTop(padding); LS[i].setColors(Color.BLACK,Color.white); } setSize((int)(LS[0].getWidth()+2*LS[1].getWidth()+4*padding), (int)(LS[0].getHeight()+2*padding)); addMouseListener(this); } public void toggled() { LS[0].str=DC.modes[DC.getMode()]; repaint(); } public void paint(Graphics gfx){ Graphics2D g=(Graphics2D) gfx; g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //LS[0].setHorizontalCenter(getWidth()/2.0); LS[0].setLeft(padding); LS[1].setRight(getWidth()-padding); LS[2].setRight(LS[1].getLeft()-padding); for (int i=0; i<3; i++) { LS[i].render(g); } } public void mouseClicked(MouseEvent e) { if (LS[0].contains(e.getX(),e.getY())) { DC.toggle(); return; } if (LS[1].contains(e.getX(),e.getY())) { DC.M.mcbSend(new HelpDocument("DisplaySelector.html")); //DC.M.setExplain("This window displays billiard paths and geodesics on the cone surface double. \n\n Click the top bar to change modes."); return; } } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } }