mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
add keyboard shortcuts for zoom
This commit is contained in:
@@ -257,10 +257,10 @@ public class Presenter implements IPlugInPort {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setZoomLevel(double zoomLevel) {
|
public void setZoomLevel(double zoomLevel) {
|
||||||
LOG.info(String.format("setZoomLevel(%s)", zoomLevel));
|
|
||||||
if (drawingManager.getZoomLevel() == zoomLevel) {
|
if (drawingManager.getZoomLevel() == zoomLevel) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
LOG.info(String.format("setZoomLevel(%s)", zoomLevel));
|
||||||
drawingManager.setZoomLevel(zoomLevel);
|
drawingManager.setZoomLevel(zoomLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3166,6 +3166,10 @@
|
|||||||
<releaseDate>2020-09-04 00:00:00.000 CET</releaseDate>
|
<releaseDate>2020-09-04 00:00:00.000 CET</releaseDate>
|
||||||
<name></name>
|
<name></name>
|
||||||
<changes>
|
<changes>
|
||||||
|
<org.diylc.appframework.update.Change>
|
||||||
|
<changeType>NEW_FEATURE</changeType>
|
||||||
|
<description>Added keyboard shortcuts for zoom in and out using standard Ctrl and +/- key combination</description>
|
||||||
|
</org.diylc.appframework.update.Change>
|
||||||
<org.diylc.appframework.update.Change>
|
<org.diylc.appframework.update.Change>
|
||||||
<changeType>IMPROVEMENT</changeType>
|
<changeType>IMPROVEMENT</changeType>
|
||||||
<description>Improved rendering precision, especially when using metric units</description>
|
<description>Improved rendering precision, especially when using metric units</description>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -36,6 +36,7 @@ import java.awt.event.ComponentAdapter;
|
|||||||
import java.awt.event.ComponentEvent;
|
import java.awt.event.ComponentEvent;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.awt.image.VolatileImage;
|
import java.awt.image.VolatileImage;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -136,6 +137,11 @@ public class CanvasPanel extends JComponent implements Autoscroll {
|
|||||||
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
|
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
|
||||||
.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clearSlot");
|
.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clearSlot");
|
||||||
|
|
||||||
|
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
|
||||||
|
.put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.CTRL_DOWN_MASK), "zoomIn");
|
||||||
|
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
|
||||||
|
.put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, KeyEvent.CTRL_DOWN_MASK), "zoomOut");
|
||||||
|
|
||||||
for (int i = 1; i <= 12; i++) {
|
for (int i = 1; i <= 12; i++) {
|
||||||
final int x = i;
|
final int x = i;
|
||||||
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
|
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
|
||||||
@@ -151,6 +157,36 @@ public class CanvasPanel extends JComponent implements Autoscroll {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getActionMap().put("zoomIn", new AbstractAction() {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
LOG.debug("Keyboard zoom-in triggered");
|
||||||
|
double oldZoom = CanvasPanel.this.plugInPort.getZoomLevel();
|
||||||
|
Double[] availableZoomLevels = CanvasPanel.this.plugInPort.getAvailableZoomLevels();
|
||||||
|
int index = Arrays.binarySearch(availableZoomLevels, oldZoom);
|
||||||
|
if (index < availableZoomLevels.length - 1)
|
||||||
|
CanvasPanel.this.plugInPort.setZoomLevel(availableZoomLevels[index + 1]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
getActionMap().put("zoomOut", new AbstractAction() {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
LOG.debug("Keyboard zoom-out triggered");
|
||||||
|
double oldZoom = CanvasPanel.this.plugInPort.getZoomLevel();
|
||||||
|
Double[] availableZoomLevels = CanvasPanel.this.plugInPort.getAvailableZoomLevels();
|
||||||
|
int index = Arrays.binarySearch(availableZoomLevels, oldZoom);
|
||||||
|
if (index > 0)
|
||||||
|
CanvasPanel.this.plugInPort.setZoomLevel(availableZoomLevels[index - 1]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
getActionMap().put("clearSlot", new AbstractAction() {
|
getActionMap().put("clearSlot", new AbstractAction() {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|||||||
@@ -214,7 +214,9 @@ public class StatusBar extends JPanel implements IPlugIn {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
plugInPort.setZoomLevel((Double) zoomBox.getSelectedItem());
|
Double newZoom = (Double) zoomBox.getSelectedItem();
|
||||||
|
if (!newZoom.equals(plugInPort.getZoomLevel()))
|
||||||
|
plugInPort.setZoomLevel((Double) zoomBox.getSelectedItem());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user