| import java.awt.event.*; |
| |
| class MML implements MouseMotionListener, MouseListener |
| { |
| public void mouseExited(MouseEvent e) {} |
| public void mouseEntered(MouseEvent e) {} |
| public void mouseClicked(MouseEvent e) {} |
| |
| private ImageViewer applet; |
| private int x1, y1, x2, y2, zf, btn; |
| private boolean zoomrq; |
| |
| public MML(ImageViewer iv) |
| { |
| x1 = y1 = -1; |
| applet = iv; |
| zoomrq = false; |
| zf = 0; |
| } |
| |
| private boolean isInside(int x, int y) |
| { |
| x -= applet.getX(); |
| y -= applet.getY(); |
| return (x >= 0) && (x < applet.getWidth()) |
| && (y >= 0) && (y < applet.getHeight()); |
| } |
| |
| public void mousePressed(MouseEvent e) |
| { |
| btn = e.getButton(); |
| if (applet.isInsideRect(e.getX(), e.getY())) { |
| applet.setSelected(2); |
| applet.repaint(); |
| zoomrq = true; |
| } else { |
| applet.setRGeom(0, 0, 0, 0); |
| applet.setSelected(0); |
| applet.repaint(); |
| x1 = y1 = -1; |
| } |
| } |
| |
| public void mouseReleased(MouseEvent e) |
| { |
| if (zoomrq && (e.getButton() == 1)) { |
| applet.zoomIn(); |
| zoomrq = false; |
| } else if (e.getButton() == 3) { |
| applet.zoomOut(); |
| zoomrq = false; |
| } |
| } |
| |
| public void mouseMoved(MouseEvent e) |
| { |
| applet.setSelected(applet.isInsideRect(e.getX(), e.getY()) ? 1 : 0); |
| } |
| |
| public void mouseDragged(MouseEvent e) |
| { |
| String str; |
| |
| if (btn == 1) { |
| x2 = e.getX(); |
| y2 = e.getY(); |
| |
| applet.setSelected(0); |
| zoomrq = false; |
| |
| if (isInside(x2, y2)) { |
| str = "[IN ]"; |
| if (x1 == -1) { |
| x1 = x2; |
| y1 = y2; |
| } else { |
| applet.setRGeom(x1, y1, x2, y2); |
| applet.repaint(); |
| } |
| } else { |
| str = "[OUT]"; |
| } |
| } |
| } |
| } |