summaryrefslogtreecommitdiff
path: root/enigma-swing/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'enigma-swing/src/main/java')
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/config/LookAndFeel.java1
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java20
2 files changed, 8 insertions, 13 deletions
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/config/LookAndFeel.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/config/LookAndFeel.java
index e21ef52c..3edc87a2 100644
--- a/enigma-swing/src/main/java/cuchaz/enigma/gui/config/LookAndFeel.java
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/config/LookAndFeel.java
@@ -36,6 +36,7 @@ public enum LookAndFeel {
36 36
37 public void setGlobalLAF() { 37 public void setGlobalLAF() {
38 // Configure FlatLaf's UI scale to be our scale factor. 38 // Configure FlatLaf's UI scale to be our scale factor.
39 // This is also used for the SVG icons, so it applies even when some other LaF is active.
39 System.setProperty(FlatSystemProperties.UI_SCALE, Float.toString(ScaleUtil.getScaleFactor())); 40 System.setProperty(FlatSystemProperties.UI_SCALE, Float.toString(ScaleUtil.getScaleFactor()));
40 41
41 try { 42 try {
diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java
index 1a86148d..60414f99 100644
--- a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java
+++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/GuiUtil.java
@@ -1,19 +1,18 @@
1package cuchaz.enigma.gui.util; 1package cuchaz.enigma.gui.util;
2 2
3import com.formdev.flatlaf.extras.FlatSVGIcon;
3import cuchaz.enigma.gui.Gui; 4import cuchaz.enigma.gui.Gui;
4import cuchaz.enigma.translation.representation.AccessFlags; 5import cuchaz.enigma.translation.representation.AccessFlags;
5import cuchaz.enigma.translation.representation.entry.ClassEntry; 6import cuchaz.enigma.translation.representation.entry.ClassEntry;
6import cuchaz.enigma.translation.representation.entry.MethodEntry; 7import cuchaz.enigma.translation.representation.entry.MethodEntry;
7import cuchaz.enigma.utils.Os; 8import cuchaz.enigma.utils.Os;
8 9
9import javax.imageio.ImageIO;
10import javax.swing.*; 10import javax.swing.*;
11import java.awt.*; 11import java.awt.*;
12import java.awt.event.MouseAdapter; 12import java.awt.event.MouseAdapter;
13import java.awt.event.MouseEvent; 13import java.awt.event.MouseEvent;
14import java.awt.font.TextAttribute; 14import java.awt.font.TextAttribute;
15import java.io.IOException; 15import java.io.IOException;
16import java.io.InputStream;
17import java.net.URI; 16import java.net.URI;
18import java.net.URISyntaxException; 17import java.net.URISyntaxException;
19import java.util.Map; 18import java.util.Map;
@@ -23,6 +22,7 @@ public class GuiUtil {
23 public static final Icon INTERFACE_ICON = loadIcon("interface"); 22 public static final Icon INTERFACE_ICON = loadIcon("interface");
24 public static final Icon ENUM_ICON = loadIcon("enum"); 23 public static final Icon ENUM_ICON = loadIcon("enum");
25 public static final Icon ANNOTATION_ICON = loadIcon("annotation"); 24 public static final Icon ANNOTATION_ICON = loadIcon("annotation");
25 public static final Icon RECORD_ICON = loadIcon("record");
26 public static final Icon METHOD_ICON = loadIcon("method"); 26 public static final Icon METHOD_ICON = loadIcon("method");
27 public static final Icon FIELD_ICON = loadIcon("field"); 27 public static final Icon FIELD_ICON = loadIcon("field");
28 public static final Icon CONSTRUCTOR_ICON = loadIcon("constructor"); 28 public static final Icon CONSTRUCTOR_ICON = loadIcon("constructor");
@@ -79,15 +79,9 @@ public class GuiUtil {
79 } 79 }
80 80
81 public static Icon loadIcon(String name) { 81 public static Icon loadIcon(String name) {
82 try { 82 // Note: the width and height are scaled automatically because the FlatLaf UI scale
83 InputStream inputStream = GuiUtil.class.getResourceAsStream("/icons/" + name + ".png"); 83 // is set in LookAndFeel.setGlobalLAF()
84 Image image = ImageIO.read(inputStream).getScaledInstance(ScaleUtil.scale(16), ScaleUtil.scale(16), Image.SCALE_DEFAULT); 84 return new FlatSVGIcon("icons/" + name + ".svg", 16, 16, GuiUtil.class.getClassLoader());
85 return new ImageIcon(image);
86 } catch (IOException e) {
87 e.printStackTrace();
88 }
89
90 return null;
91 } 85 }
92 86
93 public static Icon getClassIcon(Gui gui, ClassEntry entry) { 87 public static Icon getClassIcon(Gui gui, ClassEntry entry) {
@@ -100,9 +94,9 @@ public class GuiUtil {
100 return INTERFACE_ICON; 94 return INTERFACE_ICON;
101 } else if (access.isEnum()) { 95 } else if (access.isEnum()) {
102 return ENUM_ICON; 96 return ENUM_ICON;
97 } else if (access.isRecord()) {
98 return RECORD_ICON;
103 } 99 }
104
105 // TODO: Record icon?
106 } 100 }
107 101
108 return CLASS_ICON; 102 return CLASS_ICON;