From 4e2e6aada308ee416b18998282504a3c87c0d0e9 Mon Sep 17 00:00:00 2001 From: Samir Mokiem Date: Wed, 15 Apr 2020 05:30:26 +0200 Subject: Added zoom for PanelEditor (#209) * Added zoom for PanelEditor * Updated french zoom translations. Renamed zoom function, Integer to int--- .../cuchaz/enigma/gui/elements/PopupMenuBar.java | 20 +++++++++++++++++ .../java/cuchaz/enigma/gui/panels/PanelEditor.java | 26 +++++++++++++++++++++- src/main/resources/lang/en_us.json | 3 +++ src/main/resources/lang/fr_fr.json | 3 +++ 4 files changed, 51 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java index b0fb2b04..94da1d26 100644 --- a/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java +++ b/src/main/java/cuchaz/enigma/gui/elements/PopupMenuBar.java @@ -101,5 +101,25 @@ public class PopupMenuBar extends JPopupMenu { this.add(menu); this.toggleMappingMenu = menu; } + { + this.add(new JSeparator()); + } + { + JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.in")); + menu.addActionListener(event -> gui.editor.offsetEditorZoom(2)); + menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, InputEvent.CTRL_MASK)); + this.add(menu); + } + { + JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.out")); + menu.addActionListener(event -> gui.editor.offsetEditorZoom(-2)); + menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, InputEvent.CTRL_MASK)); + this.add(menu); + } + { + JMenuItem menu = new JMenuItem(I18n.translate("popup_menu.zoom.reset")); + menu.addActionListener(event -> gui.editor.resetEditorZoom()); + this.add(menu); + } } } diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java index 71ee34cd..bbb839e6 100644 --- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java +++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java @@ -17,11 +17,13 @@ import java.awt.event.MouseEvent; public class PanelEditor extends JEditorPane { private boolean mouseIsPressed = false; + public int fontSize = 12; public PanelEditor(Gui gui) { this.setEditable(false); this.setSelectionColor(new Color(31, 46, 90)); this.setCaret(new BrowserCaret()); + this.setFont(new Font(this.getFont().getFontName(), Font.PLAIN, this.fontSize)); this.addCaretListener(event -> gui.onCaretMove(event.getDot(), mouseIsPressed)); final PanelEditor self = this; this.addMouseListener(new MouseAdapter() { @@ -53,7 +55,6 @@ public class PanelEditor extends JEditorPane { public void keyPressed(KeyEvent event) { if (event.isControlDown()) { gui.setShouldNavigateOnClick(false); - switch (event.getKeyCode()) { case KeyEvent.VK_I: gui.popupMenu.showInheritanceMenu.doClick(); @@ -99,6 +100,16 @@ public class PanelEditor extends JEditorPane { // prevent navigating on click when quick find activated break; + case KeyEvent.VK_ADD: + case KeyEvent.VK_EQUALS: + case KeyEvent.VK_PLUS: + self.offsetEditorZoom(2); + break; + case KeyEvent.VK_SUBTRACT: + case KeyEvent.VK_MINUS: + self.offsetEditorZoom(-2); + break; + default: gui.setShouldNavigateOnClick(true); // CTRL break; @@ -135,6 +146,19 @@ public class PanelEditor extends JEditorPane { }); } + public void offsetEditorZoom(int zoomAmount) { + int newResult = this.fontSize + zoomAmount; + if (newResult > 8 && newResult < 72) { + this.fontSize = newResult; + this.setFont(new Font(this.getFont().getFontName(), Font.PLAIN, this.fontSize)); + } + } + + public void resetEditorZoom() { + this.fontSize = 12; + this.setFont(new Font(this.getFont().getFontName(), Font.PLAIN, this.fontSize)); + } + @Override public Color getCaretColor() { return new Color(Config.getInstance().caretColor); diff --git a/src/main/resources/lang/en_us.json b/src/main/resources/lang/en_us.json index 9c114bb9..e7f76248 100644 --- a/src/main/resources/lang/en_us.json +++ b/src/main/resources/lang/en_us.json @@ -56,6 +56,9 @@ "popup_menu.forward": "Go forward", "popup_menu.mark_deobfuscated": "Mark as deobfuscated", "popup_menu.reset_obfuscated": "Reset to obfuscated", + "popup_menu.zoom.in": "Zoom in", + "popup_menu.zoom.out": "Zoom out", + "popup_menu.zoom.reset": "Reset zoom", "info_panel.classes.obfuscated": "Obfuscated Classes", "info_panel.classes.deobfuscated": "De-obfuscated Classes", diff --git a/src/main/resources/lang/fr_fr.json b/src/main/resources/lang/fr_fr.json index cbd56d0b..d1b5a5a0 100644 --- a/src/main/resources/lang/fr_fr.json +++ b/src/main/resources/lang/fr_fr.json @@ -55,6 +55,9 @@ "popup_menu.forward": "Restaurer", "popup_menu.mark_deobfuscated": "Marquer comme déobfusqué", "popup_menu.reset_obfuscated": "Réinitialiser à obfusqué", + "popup_menu.zoom.in": "Zoomer", + "popup_menu.zoom.out": "Dézoomer", + "popup_menu.zoom.reset": "Réinitialiser le zoom", "info_panel.classes.obfuscated": "Classes obfusquées", "info_panel.classes.deobfuscated": "Classes déobfusquées", -- cgit v1.2.3