// Botão genérico da interface // Last edited on 2000-08-23 02:18:36 by stolfi import java.awt.*; import java.awt.image.*; public class PlinFerramenta extends Canvas implements ImageObserver { // Instância de Plin que é manipulda por esta ferramenta: public Plin raiz = z // Estado interno genérico da ferramenta: Image image_up; Image image_dn; String name; boolean is_up = true; public void initFerramenta( String iconDir, String imageName, MediaTracker tracker, Plin z ) { raiz = z image_up = getImage(getCodeBase(), iconDir + imageName + "01.gif"); image_dn = getImage(getCodeBase(), iconDir + imageName + "02.gif"); tracker.addImage(up, 0); tracker.addImage(dn, 0); } public Dimension minimumSize() { return(new Dimension(image_up.getWidth(this), image_up.getHeight(this))); } public Dimension preferredSize() { return(minimumSize()); } public boolean mouseDown(Event evt, int x, int y) { is_up = false; repaint(); return(true); } public boolean mouseUp(Event evt, int x, int y) { if (inside(x,y)) { deliverEvent(new Event(this, evt.when, Event.ACTION_EVENT, x, y, evt.key, evt.modifiers, name)); } else { System.out.println(name + " Abort"); } is_up = true; repaint(); return(true); } public void setButton(boolean state) { is_up = state; repaint(); } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { if (is_up) g.drawImage(image_up, 0, 0, this); else g.drawImage(image_dn, 0, 0, this); } }