From d876e46e9f5915a8f90e04bf65f23bd3eb25db15 Mon Sep 17 00:00:00 2001 From: hneemann Date: Sun, 31 Jul 2016 11:19:30 +0200 Subject: [PATCH] autofit mode if fit to screen was called --- .../gui/components/CircuitComponent.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java index fe7d1ad19..75c30bf1a 100644 --- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java +++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java @@ -24,10 +24,7 @@ import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.UnsupportedFlavorException; -import java.awt.event.ActionEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionListener; +import java.awt.event.*; import java.awt.geom.AffineTransform; import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.Point2D; @@ -76,6 +73,7 @@ public class CircuitComponent extends JComponent { private Observer manualChangeObserver; private Vector lastMousePos; private Sync modelSync; + private boolean isManualScale; /** @@ -158,9 +156,18 @@ public class CircuitComponent extends JComponent { transform.translate(pos.x, pos.y); transform.scale(f, f); transform.translate(-pos.x, -pos.y); + isManualScale=true; repaint(); }); + addComponentListener(new ComponentAdapter() { + @Override + public void componentResized(ComponentEvent componentEvent) { + if (!isManualScale) + fitCircuit(); + } + }); + Cursor normalCursor = new Cursor(Cursor.DEFAULT_CURSOR); moveCursor = new Cursor(Cursor.MOVE_CURSOR); mouseNormal = new MouseControllerNormal(normalCursor); @@ -403,6 +410,7 @@ public class CircuitComponent extends JComponent { } else transform = new AffineTransform(); repaint(); + isManualScale=false; } /** @@ -415,6 +423,7 @@ public class CircuitComponent extends JComponent { transform.translate(dif.x, dif.y); transform.scale(f, f); transform.translate(-dif.x, -dif.y); + isManualScale=true; repaint(); } @@ -504,6 +513,7 @@ public class CircuitComponent extends JComponent { double s = transform.getScaleX(); transform.translate(delta.x / s, delta.y / s); pos = newPos; + isManualScale=true; repaint(); } }