summaryrefslogtreecommitdiff
path: root/j2kviewer/src/MML.java
diff options
context:
space:
mode:
Diffstat (limited to 'j2kviewer/src/MML.java')
-rw-r--r--j2kviewer/src/MML.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/j2kviewer/src/MML.java b/j2kviewer/src/MML.java
new file mode 100644
index 00000000..7c49ff2f
--- /dev/null
+++ b/j2kviewer/src/MML.java
@@ -0,0 +1,85 @@
+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]";
+ }
+ }
+ }
+}