1
0
mirror of https://gitlab.com/annimon/imagetagger.git synced 2024-09-20 05:44:20 +03:00

Ability to change font size

This commit is contained in:
aNNiMON 2023-02-02 18:31:31 +02:00
parent f1689b5ff3
commit b4b1329e34
3 changed files with 35 additions and 0 deletions

View File

@ -3,6 +3,8 @@ package com.annimon.imagetagger.logic;
import com.annimon.imagetagger.beans.TagButton;
import com.annimon.imagetagger.views.ImagePanel;
import com.annimon.imagetagger.views.TagPanel;
import com.annimon.imagetagger.views.UIUtils;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.List;
@ -55,6 +57,15 @@ public class KeyProcessor {
case KeyEvent.VK_F3:
changeBackground();
break;
// Ctrl+Plus / Ctrl+Minus
case KeyEvent.VK_ADD:
case KeyEvent.VK_EQUALS:
case KeyEvent.VK_MINUS:
if ((e.getModifiersEx() & KeyEvent.CTRL_DOWN_MASK) == 0) break;
final float delta = (e.getKeyCode() == KeyEvent.VK_MINUS) ? -0.5f : 0.5f;
UIUtils.changeFontSize(imagePanel, delta);
tagPanel.changeFontSize(delta);
break;
default:
final var key = getKeyAsString(e);
if (keys.contains(key)) {

View File

@ -2,6 +2,7 @@ package com.annimon.imagetagger.views;
import com.annimon.imagetagger.beans.TagButton;
import com.annimon.imagetagger.beans.TagButtonHolder;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -64,4 +65,9 @@ public class TagPanel extends JPanel {
label.setToggled(containsTag);
});
}
public void changeFontSize(float delta) {
tagButtons.values().forEach(btn -> UIUtils.changeFontSize(btn.getLabel(), delta));
UIUtils.changeFontSize(this, delta);
}
}

View File

@ -0,0 +1,18 @@
package com.annimon.imagetagger.views;
import java.awt.*;
public class UIUtils {
public static void changeFontSize(Component component, float delta) {
final var font = component.getFont();
if (font == null) return;
final float size = font.getSize2D() + delta;
if (size <= 6) return;
if (size >= 32) return;
component.setFont(font.deriveFont(size));
component.repaint();
}
}