From 8d2b4a73109b351ac6a063310c59a7c21d0d9c54 Mon Sep 17 00:00:00 2001 From: James <38226001+f0rmatme@users.noreply.github.com> Date: Wed, 31 Jul 2019 10:39:24 -0700 Subject: [PATCH] runelite-client: revert font change (#1070) * runelite-client: revert font change * Checkstyle Fix Checkstyle Fix * overlayrenderer: Save fonts --- .../runelite/client/config/ConfigManager.java | 10 - .../net/runelite/client/config/FontType.java | 9 +- .../client/plugins/config/ConfigPanel.java | 33 ---- .../plugins/devtools/DevToolsOverlay.java | 8 +- .../client/plugins/devtools/VarInspector.java | 2 +- .../plugins/equipmentinspector/ItemPanel.java | 2 +- .../client/plugins/feed/FeedPanel.java | 8 +- .../grandexchange/GrandExchangeOfferSlot.java | 8 +- .../grounditems/GroundItemsOverlay.java | 8 +- .../client/plugins/hiscore/HiscorePanel.java | 2 +- .../client/plugins/info/InfoPanel.java | 10 +- .../itemcharges/ItemChargeOverlay.java | 2 +- .../plugins/kourendlibrary/BookPanel.java | 2 +- .../plugins/loottracker/LootTrackerBox.java | 6 +- .../plugins/loottracker/LootTrackerPanel.java | 4 +- .../plugins/mta/MTAInventoryOverlay.java | 2 +- .../client/plugins/mta/MTASceneOverlay.java | 2 +- .../plugins/profiles/ProfilesPanel.java | 2 +- .../plugins/runepouch/RunepouchOverlay.java | 17 +- .../ui/ScreenMarkerCreationPanel.java | 2 +- .../screenmarkers/ui/ScreenMarkerPanel.java | 6 +- .../client/plugins/slayer/SlayerOverlay.java | 2 +- .../plugins/slayer/SlayerTaskPanel.java | 4 +- .../suppliestracker/SuppliesTrackerPanel.java | 4 +- .../timetracking/OverviewItemPanel.java | 4 +- .../plugins/timetracking/TimeablePanel.java | 4 +- .../timetracking/clocks/ClockTabPanel.java | 4 +- .../timetracking/clocks/StopwatchPanel.java | 2 +- .../timetracking/farming/FarmingTabPanel.java | 2 +- .../plugins/worldhopper/WorldTableHeader.java | 2 +- .../plugins/worldhopper/WorldTableRow.java | 4 +- .../client/plugins/xptracker/XpInfoBox.java | 8 +- .../client/plugins/xptracker/XpPanel.java | 4 +- .../net/runelite/client/ui/FontManager.java | 174 ++---------------- .../ui/components/PluginErrorPanel.java | 2 +- .../client/ui/components/ProgressBar.java | 6 +- .../client/ui/overlay/OverlayRenderer.java | 10 +- .../overlay/components/InfoBoxComponent.java | 14 +- .../ui/overlay/components/LineComponent.java | 7 +- .../components/ProgressBarComponent.java | 2 +- .../ui/overlay/components/TitleComponent.java | 2 +- .../overlay/components/TooltipComponent.java | 6 +- .../ui/overlay/worldmap/WorldMapOverlay.java | 2 +- 43 files changed, 107 insertions(+), 307 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index eaeebc8b82..b123d406b1 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -29,7 +29,6 @@ import com.google.common.collect.ComparisonChain; import com.google.common.collect.ImmutableMap; import java.awt.Color; import java.awt.Dimension; -import java.awt.Font; import java.awt.Point; import java.awt.Rectangle; import java.io.File; @@ -66,7 +65,6 @@ import net.runelite.api.events.ConfigChanged; import net.runelite.client.RuneLite; import static net.runelite.client.RuneLite.PROFILES_DIR; import net.runelite.client.eventbus.EventBus; -import net.runelite.client.ui.FontManager; import net.runelite.client.util.ColorUtil; @Singleton @@ -508,10 +506,6 @@ public class ConfigManager { return Enum.valueOf((Class) type, str); } - if (type == Font.class) - { - return FontManager.getFontOrDefault(FontManager.lookupFont(str)); - } if (type == Instant.class) { return Instant.parse(str); @@ -568,10 +562,6 @@ public class ConfigManager { return ((Enum) object).name(); } - if (object instanceof Font) - { - return FontManager.getFontName((Font)object); - } if (object instanceof Dimension) { Dimension d = (Dimension) object; diff --git a/runelite-client/src/main/java/net/runelite/client/config/FontType.java b/runelite-client/src/main/java/net/runelite/client/config/FontType.java index df1044de5c..8cf3dcbad8 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/FontType.java +++ b/runelite-client/src/main/java/net/runelite/client/config/FontType.java @@ -24,18 +24,21 @@ */ package net.runelite.client.config; +import java.awt.Font; import lombok.Getter; import lombok.RequiredArgsConstructor; +import net.runelite.client.ui.FontManager; @Getter @RequiredArgsConstructor public enum FontType { - REGULAR("Regular"), - BOLD("Bold"), - SMALL("Small"); + REGULAR("Regular", FontManager.getRunescapeFont()), + BOLD("Bold", FontManager.getRunescapeBoldFont()), + SMALL("Small", FontManager.getRunescapeSmallFont()); private final String name; + private final Font font; @Override public String toString() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index 4388c08b9b..f0388bed8b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -30,7 +30,6 @@ import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; -import java.awt.Font; import java.awt.FontMetrics; import java.awt.Insets; import java.awt.Rectangle; @@ -101,7 +100,6 @@ import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.DynamicGridLayout; -import net.runelite.client.ui.FontManager; import net.runelite.client.ui.PluginPanel; import net.runelite.client.ui.components.ComboBoxListRenderer; import net.runelite.client.ui.components.IconButton; @@ -1017,37 +1015,6 @@ public class ConfigPanel extends PluginPanel item.add(button, BorderLayout.EAST); } - - if (cid.getType() == Font.class) - { - JComboBox box = new JComboBox(FontManager.getAvailableFontNames()); - box.setPreferredSize(new Dimension(150, 25)); - box.setRenderer(new ComboBoxListRenderer()); - box.setForeground(Color.WHITE); - box.setFocusable(false); - String currentlyConfigured = configManager.getConfiguration(cd.getGroup().value(), cid.getItem().keyName()); - if (FontManager.lookupFont(currentlyConfigured) != null) - { - box.setSelectedItem(currentlyConfigured); - box.setToolTipText(currentlyConfigured); - } - else - { - log.debug("Selected font wasn't found on this system, resetting font back to runescape regular"); - configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), FontManager.getRunescapeFont()); - } - box.addItemListener(e -> - { - if (e.getStateChange() == ItemEvent.SELECTED && box.getSelectedItem() != null) - { - final Font selected = FontManager.lookupFont(box.getSelectedItem().toString()); - configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), selected); - box.setToolTipText(box.getSelectedItem().toString()); - } - }); - item.add(box, BorderLayout.EAST); - } - mainPanel.add(item); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java index 10f6b7f905..a64a93e28b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsOverlay.java @@ -26,6 +26,7 @@ package net.runelite.client.plugins.devtools; import java.awt.Color; +import java.awt.Font; import java.awt.Dimension; import java.awt.FontMetrics; import java.awt.Graphics2D; @@ -62,6 +63,7 @@ import net.runelite.api.coords.LocalPoint; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; +import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; @@ -75,6 +77,7 @@ class DevToolsOverlay extends Overlay private static final int ITEM_EMPTY = 6512; private static final int ITEM_FILLED = 20594; + private static final Font FONT = FontManager.getRunescapeFont().deriveFont(Font.BOLD, 16); private static final Color RED = new Color(221, 44, 0); private static final Color GREEN = new Color(0, 200, 83); private static final Color TURQOISE = new Color(0, 200, 157); @@ -112,6 +115,7 @@ class DevToolsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { + graphics.setFont(FONT); if (plugin.getPlayers().isActive()) { @@ -394,7 +398,7 @@ class DevToolsOverlay extends Overlay Rectangle2D textBounds = fm.getStringBounds(idText, graphics); int textX = (int) (slotBounds.getX() + (slotBounds.getWidth() / 2) - (textBounds.getWidth() / 2)); - int textY = (int) (slotBounds.getY() + (slotBounds.getHeight() / 2) + (fm.getHeight() / 2) - fm.getMaxDescent()); + int textY = (int) (slotBounds.getY() + (slotBounds.getHeight() / 2) + (textBounds.getHeight() / 2)); graphics.setColor(new Color(255, 255, 255, 65)); graphics.fill(slotBounds); @@ -536,7 +540,7 @@ class DevToolsOverlay extends Overlay Rectangle2D textBounds = fm.getStringBounds(text, graphics); int textX = (int) (bounds.getX() + (bounds.getWidth() / 2) - (textBounds.getWidth() / 2)); - int textY = (int) (bounds.getY() + (bounds.getHeight() / 2) + (fm.getHeight() / 2) - fm.getMaxDescent()); + int textY = (int) (bounds.getY() + (bounds.getHeight() / 2) + (textBounds.getHeight() / 2)); graphics.setColor(Color.BLACK); graphics.drawString(text, textX + 1, textY + 1); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index 3115963a9f..a02659b4c5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -192,7 +192,7 @@ class VarInspector extends JFrame { lastTick = tick; JLabel header = new JLabel("Tick " + tick); - header.setFont(FontManager.getSmallFont(getFont())); + header.setFont(FontManager.getRunescapeSmallFont()); header.setBorder(new CompoundBorder( BorderFactory.createMatteBorder(0, 0, 1, 0, ColorScheme.LIGHT_GRAY_COLOR), BorderFactory.createEmptyBorder(3, 6, 0, 0) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java index 684cb8ab31..20f1c2f9be 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/ItemPanel.java @@ -49,7 +49,7 @@ class ItemPanel extends JPanel JLabel name = new JLabel(item.getName()); JLabel location = new JLabel(StringUtils.capitalize(kitType.toString().toLowerCase())); - location.setFont(FontManager.getSmallFont(getFont())); + location.setFont(FontManager.getRunescapeSmallFont()); JLabel imageLabel = new JLabel(); icon.addTo(imageLabel); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPanel.java index 622ef7d273..437f32700c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/feed/FeedPanel.java @@ -223,14 +223,14 @@ class FeedPanel extends PluginPanel Color darkerForeground = UIManager.getColor("Label.foreground").darker(); JLabel titleLabel = new JLabel(item.getTitle()); - titleLabel.setFont(FontManager.getSmallFont(getFont())); + titleLabel.setFont(FontManager.getRunescapeSmallFont()); titleLabel.setBackground(null); titleLabel.setForeground(darkerForeground); titleLabel.setPreferredSize(new Dimension(CONTENT_WIDTH - TIME_WIDTH, 0)); Duration duration = Duration.between(Instant.ofEpochMilli(item.getTimestamp()), Instant.now()); JLabel timeLabel = new JLabel(durationToString(duration)); - timeLabel.setFont(FontManager.getSmallFont(getFont())); + timeLabel.setFont(FontManager.getRunescapeSmallFont()); timeLabel.setForeground(darkerForeground); titleAndTime.add(titleLabel, BorderLayout.WEST); @@ -239,9 +239,9 @@ class FeedPanel extends PluginPanel JPanel content = new JPanel(new BorderLayout()); content.setBackground(null); - JLabel contentLabel = new JLabel(lineBreakText(item.getContent(), FontManager.getSmallFont(getFont()))); + JLabel contentLabel = new JLabel(lineBreakText(item.getContent(), FontManager.getRunescapeSmallFont())); contentLabel.setBorder(new EmptyBorder(2, 0, 0, 0)); - contentLabel.setFont(FontManager.getSmallFont(getFont())); + contentLabel.setFont(FontManager.getRunescapeSmallFont()); contentLabel.setForeground(darkerForeground); content.add(contentLabel, BorderLayout.CENTER); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java index 79c5545ef1..39f628e151 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grandexchange/GrandExchangeOfferSlot.java @@ -136,11 +136,11 @@ class GrandExchangeOfferSlot extends JPanel itemName.setForeground(Color.WHITE); itemName.setVerticalAlignment(JLabel.BOTTOM); - itemName.setFont(FontManager.getSmallFont(getFont())); + itemName.setFont(FontManager.getRunescapeSmallFont()); offerInfo.setForeground(ColorScheme.LIGHT_GRAY_COLOR); offerInfo.setVerticalAlignment(JLabel.TOP); - offerInfo.setFont(FontManager.getSmallFont(getFont())); + offerInfo.setFont(FontManager.getRunescapeSmallFont()); JLabel switchFaceViewIcon = new JLabel(); switchFaceViewIcon.setIcon(RIGHT_ARROW_ICON); @@ -172,11 +172,11 @@ class GrandExchangeOfferSlot extends JPanel itemPrice.setForeground(Color.WHITE); itemPrice.setVerticalAlignment(JLabel.BOTTOM); - itemPrice.setFont(FontManager.getSmallFont(getFont())); + itemPrice.setFont(FontManager.getRunescapeSmallFont()); offerSpent.setForeground(Color.WHITE); offerSpent.setVerticalAlignment(JLabel.TOP); - offerSpent.setFont(FontManager.getSmallFont(getFont())); + offerSpent.setFont(FontManager.getRunescapeSmallFont()); JLabel switchDetailsViewIcon = new JLabel(); switchDetailsViewIcon.setIcon(LEFT_ARROW_ICON); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java index 40b8a7f97c..1b4f9646e7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java @@ -109,6 +109,8 @@ public class GroundItemsOverlay extends Overlay { return null; } + + final FontMetrics fm = graphics.getFontMetrics(); final Player player = client.getLocalPlayer(); if (player == null || client.getViewportWidget() == null) @@ -116,8 +118,6 @@ public class GroundItemsOverlay extends Overlay return null; } - final FontMetrics fm = graphics.getFontMetrics(); - offsetMap.clear(); final LocalPoint localLocation = player.getLocalLocation(); final Point mousePos = client.getMouseCanvasPosition(); @@ -319,14 +319,14 @@ public class GroundItemsOverlay extends Overlay // Item bounds int x = textX - 2; - int y = textY - stringHeight - 2 + fm.getMaxDescent(); + int y = textY - stringHeight - 2; int width = stringWidth + 4; int height = stringHeight + 4; final Rectangle itemBounds = new Rectangle(x, y, width, height); // Hidden box x += width + 2; - y = textY - (fm.getMaxAscent() + RECTANGLE_SIZE) / 2; + y = textY - (RECTANGLE_SIZE + stringHeight) / 2; width = height = RECTANGLE_SIZE; final Rectangle itemHiddenBox = new Rectangle(x, y, width, height); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java index f0c7df167c..eb95a47ad8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java @@ -294,7 +294,7 @@ public class HiscorePanel extends PluginPanel private JPanel makeSkillPanel(HiscoreSkill skill) { JLabel label = new JLabel(); - label.setFont(FontManager.getSmallFont(getFont())); + label.setFont(FontManager.getRunescapeSmallFont()); label.setText("--"); String skillName = (skill == null ? "combat" : skill.getName().toLowerCase()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java index 95d31b4856..7e5cf64195 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPanel.java @@ -117,7 +117,7 @@ public class InfoPanel extends PluginPanel versionPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); versionPanel.setLayout(new GridLayout(0, 1)); - final Font smallFont = FontManager.getSmallFont(getFont()); + final Font smallFont = FontManager.getRunescapeSmallFont(); JLabel version = new JLabel(htmlLabel("RuneLite version: ", runeLiteProperties.getVersion())); version.setFont(smallFont); @@ -207,7 +207,7 @@ public class InfoPanel extends PluginPanel /** * Builds a link panel with a given icon, text and url to redirect to. */ - private JPanel buildLinkPanel(ImageIcon icon, String topText, String bottomText, String url) + private static JPanel buildLinkPanel(ImageIcon icon, String topText, String bottomText, String url) { return buildLinkPanel(icon, topText, bottomText, () -> LinkBrowser.browse(url)); } @@ -215,7 +215,7 @@ public class InfoPanel extends PluginPanel /** * Builds a link panel with a given icon, text and callable to call. */ - private JPanel buildLinkPanel(ImageIcon icon, String topText, String bottomText, Runnable callback) + private static JPanel buildLinkPanel(ImageIcon icon, String topText, String bottomText, Runnable callback) { JPanel container = new JPanel(); container.setBackground(ColorScheme.DARKER_GRAY_COLOR); @@ -269,11 +269,11 @@ public class InfoPanel extends PluginPanel JLabel topLine = new JLabel(topText); topLine.setForeground(Color.WHITE); - topLine.setFont(FontManager.getSmallFont(getFont())); + topLine.setFont(FontManager.getRunescapeSmallFont()); JLabel bottomLine = new JLabel(bottomText); bottomLine.setForeground(Color.WHITE); - bottomLine.setFont(FontManager.getSmallFont(getFont())); + bottomLine.setFont(FontManager.getRunescapeSmallFont()); textContainer.add(topLine); textContainer.add(bottomLine); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java index 13768f428a..e307aac089 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java @@ -170,7 +170,7 @@ class ItemChargeOverlay extends WidgetItemOverlay final Rectangle bounds = itemWidget.getCanvasBounds(); final TextComponent textComponent = new TextComponent(); - textComponent.setPosition(new Point(bounds.x, bounds.y + 1 + graphics.getFontMetrics().getMaxAscent() - graphics.getFontMetrics().getMaxDescent())); + textComponent.setPosition(new Point(bounds.x - 1, bounds.y + 15)); textComponent.setText(charges < 0 ? "?" : String.valueOf(charges)); textComponent.setColor(plugin.getColor(charges)); textComponent.render(graphics); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java index 857c50cef3..ab4f6a6ac1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/BookPanel.java @@ -49,7 +49,7 @@ class BookPanel extends JPanel JLabel image = new JLabel(); b.getIcon().addTo(image); JLabel name = new JLabel(b.getShortName()); - location.setFont(FontManager.getSmallFont(getFont())); + location.setFont(FontManager.getRunescapeSmallFont()); layout.setVerticalGroup(layout.createParallelGroup() .addComponent(image) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java index a50e25af13..1c53f27aff 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerBox.java @@ -97,12 +97,12 @@ class LootTrackerBox extends JPanel logTitle.setBackground(ColorScheme.DARKER_GRAY_COLOR.darker()); final JLabel titleLabel = new JLabel(Text.removeTags(id)); - titleLabel.setFont(FontManager.getSmallFont(getFont())); + titleLabel.setFont(FontManager.getRunescapeSmallFont()); titleLabel.setForeground(Color.WHITE); logTitle.add(titleLabel, BorderLayout.WEST); - subTitleLabel.setFont(FontManager.getSmallFont(getFont())); + subTitleLabel.setFont(FontManager.getRunescapeSmallFont()); subTitleLabel.setForeground(ColorScheme.LIGHT_GRAY_COLOR); logTitle.add(subTitleLabel, BorderLayout.CENTER); @@ -121,7 +121,7 @@ class LootTrackerBox extends JPanel subTitleLabel.setText(subtitle); } - priceLabel.setFont(FontManager.getSmallFont(getFont())); + priceLabel.setFont(FontManager.getRunescapeSmallFont()); priceLabel.setForeground(ColorScheme.LIGHT_GRAY_COLOR); logTitle.add(priceLabel, BorderLayout.EAST); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java index addffcee41..454a9c0812 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loottracker/LootTrackerPanel.java @@ -349,8 +349,8 @@ class LootTrackerPanel extends PluginPanel overallInfo.setBackground(ColorScheme.DARKER_GRAY_COLOR); overallInfo.setLayout(new GridLayout(2, 1)); overallInfo.setBorder(new EmptyBorder(2, 10, 2, 0)); - overallKillsLabel.setFont(FontManager.getSmallFont(getFont())); - overallGpLabel.setFont(FontManager.getSmallFont(getFont())); + overallKillsLabel.setFont(FontManager.getRunescapeSmallFont()); + overallGpLabel.setFont(FontManager.getRunescapeSmallFont()); overallInfo.add(overallKillsLabel); overallInfo.add(overallGpLabel); overallPanel.add(overallIcon, BorderLayout.WEST); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java index 928522a48a..700e48108a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTAInventoryOverlay.java @@ -53,7 +53,7 @@ public class MTAInventoryOverlay extends Overlay { if (room.inside()) { - graphics.setFont(FontManager.getSmallFont(graphics.getFont())); + graphics.setFont(FontManager.getRunescapeBoldFont()); room.over(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTASceneOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTASceneOverlay.java index c9c405aa75..5c794ee741 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTASceneOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mta/MTASceneOverlay.java @@ -53,7 +53,7 @@ public class MTASceneOverlay extends Overlay { if (room.inside()) { - graphics.setFont(FontManager.getSmallFont(graphics.getFont())); + graphics.setFont(FontManager.getRunescapeBoldFont()); room.under(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPanel.java index 28b554e6f2..d6ebee4681 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/profiles/ProfilesPanel.java @@ -116,7 +116,7 @@ class ProfilesPanel extends PluginPanel JPanel helpPanel = new JPanel(new BorderLayout()); helpPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR); JLabel helpLabel = new JLabel("

" + HELP + "

"); - helpLabel.setFont(FontManager.getSmallFont(getFont())); + helpLabel.setFont(FontManager.getRunescapeSmallFont()); helpPanel.setPreferredSize(HELP_PREFERRED_SIZE); // helpPanel.setSize(MINIMUM_SIZE); helpPanel.add(helpLabel, BorderLayout.NORTH); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java index f587c38818..968e983d74 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java @@ -90,10 +90,6 @@ public class RunepouchOverlay extends WidgetItemOverlay Point location = itemWidget.getCanvasLocation(); StringBuilder tooltipBuilder = new StringBuilder(); - // location.getY() + graphics.getFontMetrics().getMaxAscent() - graphics.getFontMetrics().getMaxDescent() - // this will draw the character exactly on the border - int yLocation = location.getY() + 1 + - graphics.getFontMetrics().getMaxAscent() - graphics.getFontMetrics().getMaxDescent(); for (int i = 0; i < AMOUNT_VARBITS.length; i++) { Varbits amountVarbit = AMOUNT_VARBITS[i]; @@ -129,12 +125,9 @@ public class RunepouchOverlay extends WidgetItemOverlay int yOffset = (1 + (graphics.getFontMetrics().getMaxAscent()) * i); graphics.setColor(Color.black); - graphics.drawString("" + formatNumber(amount), location.getX() + (plugin.isShowIcons() ? 13 : 6), - yLocation + yOffset); - graphics.setColor(plugin.getFontColor()); graphics.drawString("" + formatNumber(amount), location.getX() + (plugin.isShowIcons() ? 12 : 5), - yLocation + yOffset); + location.getY() + 13 + (graphics.getFontMetrics().getHeight() - 1) * i); graphics.setColor(plugin.getFontColor()); graphics.drawString("" + formatNumber(amount), location.getX() + (plugin.isShowIcons() ? 11 : 4), @@ -149,13 +142,7 @@ public class RunepouchOverlay extends WidgetItemOverlay if (image != null) { OverlayUtil.renderImageLocation(graphics, - //TODO :: SEE WHAT ONE IS RIGHT? - //new Point(location.getX() - 1, location.getY() + graphics.getFontMetrics().getMaxAscent() * i - 1), - //image); - //or - //new Point(location.getX(), location.getY() + (1 + graphics.getFontMetrics().getMaxAscent()) * i), - //image); - new Point(location.getX(), location.getY() + (1 + graphics.getFontMetrics().getMaxAscent()) * i), + new Point(location.getX() - 1, location.getY() + graphics.getFontMetrics().getHeight() * i - 1), image); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerCreationPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerCreationPanel.java index 82197c6160..d3c61ff5a8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerCreationPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerCreationPanel.java @@ -71,7 +71,7 @@ public class ScreenMarkerCreationPanel extends JPanel setBorder(new EmptyBorder(8, 8, 8, 8)); setLayout(new BorderLayout()); - instructionsLabel.setFont(FontManager.getSmallFont(getFont())); + instructionsLabel.setFont(FontManager.getRunescapeSmallFont()); instructionsLabel.setForeground(Color.WHITE); JPanel actionsContainer = new JPanel(new GridLayout(1, 2, 8, 0)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java index 3aced96c5a..108282172a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java @@ -162,7 +162,7 @@ class ScreenMarkerPanel extends JPanel nameActions.setBackground(ColorScheme.DARKER_GRAY_COLOR); save.setVisible(false); - save.setFont(FontManager.getSmallFont(getFont())); + save.setFont(FontManager.getRunescapeSmallFont()); save.setForeground(ColorScheme.PROGRESS_COMPLETE_COLOR); save.addMouseListener(new MouseAdapter() { @@ -191,7 +191,7 @@ class ScreenMarkerPanel extends JPanel }); cancel.setVisible(false); - cancel.setFont(FontManager.getSmallFont(getFont())); + cancel.setFont(FontManager.getRunescapeSmallFont()); cancel.setForeground(ColorScheme.PROGRESS_ERROR_COLOR); cancel.addMouseListener(new MouseAdapter() { @@ -217,7 +217,7 @@ class ScreenMarkerPanel extends JPanel } }); - rename.setFont(FontManager.getSmallFont(getFont())); + rename.setFont(FontManager.getRunescapeSmallFont()); rename.setForeground(ColorScheme.LIGHT_GRAY_COLOR.darker()); rename.addMouseListener(new MouseAdapter() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java index 52ee0770aa..1291c12d44 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java @@ -117,7 +117,7 @@ class SlayerOverlay extends WidgetItemOverlay return; } - graphics.setFont(FontManager.getSmallFont(graphics.getFont())); + graphics.setFont(FontManager.getRunescapeBoldFont()); final Rectangle bounds = itemWidget.getCanvasBounds(); final TextComponent textComponent = new TextComponent(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerTaskPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerTaskPanel.java index d9eb0d0065..f865237fe9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerTaskPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerTaskPanel.java @@ -195,8 +195,8 @@ public class SlayerTaskPanel extends PluginPanel overallInfo.setBackground(ColorScheme.DARKER_GRAY_COLOR); overallInfo.setLayout(new GridLayout(2, 1)); overallInfo.setBorder(new EmptyBorder(2, 10, 2, 0)); - overallKillsLabel.setFont(FontManager.getSmallFont(getFont())); - overallTimeLabel.setFont(FontManager.getSmallFont(getFont())); + overallKillsLabel.setFont(FontManager.getRunescapeSmallFont()); + overallTimeLabel.setFont(FontManager.getRunescapeSmallFont()); overallInfo.add(overallKillsLabel); overallInfo.add(overallTimeLabel); overallPanel.add(overallIcon, BorderLayout.WEST); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPanel.java index 983587c50c..088d2421b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPanel.java @@ -90,8 +90,8 @@ class SuppliesTrackerPanel extends PluginPanel overallInfo.setBackground(ColorScheme.DARKER_GRAY_COLOR); overallInfo.setLayout(new GridLayout(2, 1)); overallInfo.setBorder(new EmptyBorder(0, 10, 0, 0)); - overallSuppliesUsedLabel.setFont(FontManager.getSmallFont(getFont())); - overallCostLabel.setFont(FontManager.getSmallFont(getFont())); + overallSuppliesUsedLabel.setFont(FontManager.getRunescapeSmallFont()); + overallCostLabel.setFont(FontManager.getRunescapeSmallFont()); overallInfo.add(overallSuppliesUsedLabel); overallInfo.add(overallCostLabel); overallPanel.add(overallIcon, BorderLayout.WEST); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/OverviewItemPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/OverviewItemPanel.java index c1b8d5a211..973eec5eaa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/OverviewItemPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/OverviewItemPanel.java @@ -106,11 +106,11 @@ class OverviewItemPanel extends JPanel JLabel titleLabel = new JLabel(title); titleLabel.setForeground(Color.WHITE); - titleLabel.setFont(FontManager.getSmallFont(getFont())); + titleLabel.setFont(FontManager.getRunescapeSmallFont()); statusLabel = new JLabel(); statusLabel.setForeground(Color.GRAY); - statusLabel.setFont(FontManager.getSmallFont(getFont())); + statusLabel.setFont(FontManager.getRunescapeSmallFont()); textContainer.add(titleLabel); textContainer.add(statusLabel); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java index 81693a2ea3..c01f770063 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/TimeablePanel.java @@ -67,10 +67,10 @@ public class TimeablePanel extends JPanel infoPanel.setBorder(new EmptyBorder(4, 4, 4, 0)); final JLabel location = new JShadowedLabel(title); - location.setFont(FontManager.getSmallFont(getFont())); + location.setFont(FontManager.getRunescapeSmallFont()); location.setForeground(Color.WHITE); - estimate.setFont(FontManager.getSmallFont(getFont())); + estimate.setFont(FontManager.getRunescapeSmallFont()); estimate.setForeground(Color.GRAY); infoPanel.add(location); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockTabPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockTabPanel.java index 14722f4b4a..fcc460fdf8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockTabPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/ClockTabPanel.java @@ -155,7 +155,7 @@ public class ClockTabPanel extends TabContentPanel JLabel headerLabel = new JLabel(title); headerLabel.setForeground(Color.WHITE); - headerLabel.setFont(FontManager.getSmallFont(getFont())); + headerLabel.setFont(FontManager.getRunescapeSmallFont()); panel.add(headerLabel, BorderLayout.CENTER); IconButton addButton = new IconButton(ADD_ICON, ADD_ICON_HOVER); @@ -175,7 +175,7 @@ public class ClockTabPanel extends TabContentPanel JLabel infoLabel = new JShadowedLabel(text); infoLabel.setForeground(ColorScheme.LIGHT_GRAY_COLOR.darker()); - infoLabel.setFont(FontManager.getSmallFont(getFont())); + infoLabel.setFont(FontManager.getRunescapeSmallFont()); panel.add(infoLabel); return panel; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/StopwatchPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/StopwatchPanel.java index bf285be9e9..99bb8def81 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/StopwatchPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/clocks/StopwatchPanel.java @@ -129,7 +129,7 @@ class StopwatchPanel extends ClockPanel private JLabel createSmallLabel(String text) { JLabel label = new JLabel(text, SwingConstants.CENTER); - label.setFont(FontManager.getSmallFont(getFont())); + label.setFont(FontManager.getRunescapeSmallFont()); label.setForeground(LAP_DATA_COLOR); return label; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTabPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTabPanel.java index b99212963b..fa6852082d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTabPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timetracking/farming/FarmingTabPanel.java @@ -92,7 +92,7 @@ public class FarmingTabPanel extends TabContentPanel groupLabel.setBorder(new EmptyBorder(15, 0, 0, 0)); } - groupLabel.setFont(FontManager.getSmallFont(getFont())); + groupLabel.setFont(FontManager.getRunescapeSmallFont()); add(groupLabel, c); c.gridy++; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableHeader.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableHeader.java index a1ad1e76b7..18b7fddbac 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableHeader.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableHeader.java @@ -104,7 +104,7 @@ class WorldTableHeader extends JPanel }); textLabel.setText(title); - textLabel.setFont(FontManager.getSmallFont(getFont())); + textLabel.setFont(FontManager.getRunescapeSmallFont()); final JMenuItem refresh = new JMenuItem("Refresh worlds"); refresh.addActionListener(e -> diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java index 7aa7eb12b1..cad6358120 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldhopper/WorldTableRow.java @@ -273,7 +273,7 @@ class WorldTableRow extends JPanel column.setBorder(new EmptyBorder(0, 5, 0, 5)); playerCountField = new JLabel(world.getPlayers() + ""); - playerCountField.setFont(FontManager.getSmallFont(getFont())); + playerCountField.setFont(FontManager.getRunescapeSmallFont()); column.add(playerCountField, BorderLayout.WEST); @@ -302,7 +302,7 @@ class WorldTableRow extends JPanel column.setBorder(new EmptyBorder(0, 5, 0, 5)); activityField = new JLabel(world.getActivity()); - activityField.setFont(FontManager.getSmallFont(getFont())); + activityField.setFont(FontManager.getRunescapeSmallFont()); column.add(activityField, BorderLayout.WEST); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java index c71facbc97..1c922f0956 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java @@ -180,10 +180,10 @@ class XpInfoBox extends JPanel statsPanel.setBackground(ColorScheme.DARKER_GRAY_COLOR); statsPanel.setBorder(new EmptyBorder(6, 5, 0, 2)); - expGained.setFont(FontManager.getSmallFont(getFont())); - expHour.setFont(FontManager.getSmallFont(getFont())); - expLeft.setFont(FontManager.getSmallFont(getFont())); - actionsLeft.setFont(FontManager.getSmallFont(getFont())); + expGained.setFont(FontManager.getRunescapeSmallFont()); + expHour.setFont(FontManager.getRunescapeSmallFont()); + expLeft.setFont(FontManager.getRunescapeSmallFont()); + actionsLeft.setFont(FontManager.getRunescapeSmallFont()); statsPanel.add(expGained); statsPanel.add(expLeft); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpPanel.java index 8a05ccc932..5634dc9ee0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpPanel.java @@ -111,8 +111,8 @@ class XpPanel extends PluginPanel overallInfo.setLayout(new GridLayout(2, 1)); overallInfo.setBorder(new EmptyBorder(0, 10, 0, 0)); - overallExpGained.setFont(FontManager.getSmallFont(getFont())); - overallExpHour.setFont(FontManager.getSmallFont(getFont())); + overallExpGained.setFont(FontManager.getRunescapeSmallFont()); + overallExpHour.setFont(FontManager.getRunescapeSmallFont()); overallInfo.add(overallExpGained); overallInfo.add(overallExpHour); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/FontManager.java b/runelite-client/src/main/java/net/runelite/client/ui/FontManager.java index 1205c6b3a7..5f703bb002 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/FontManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/FontManager.java @@ -24,19 +24,11 @@ */ package net.runelite.client.ui; -import com.google.common.collect.ImmutableBiMap; -import java.awt.Canvas; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.LinkedHashMap; import java.awt.Font; import java.awt.FontFormatException; import java.awt.GraphicsEnvironment; import java.io.IOException; -import java.util.Map; -import lombok.Getter; -import net.runelite.client.config.FontType; +import javax.swing.text.StyleContext; public class FontManager { @@ -44,59 +36,37 @@ public class FontManager private static final Font runescapeSmallFont; private static final Font runescapeBoldFont; - @Getter - private static class CachedFont - { - private final Font reg; - private final Font small; - private final Font bold; - - private CachedFont(Font f) - { - reg = f.deriveFont(14.0f); - small = getFontOffCorrectSize(f); - bold = f.deriveFont(Font.BOLD, 14.0f); - } - } - - private static final ImmutableBiMap fontMap; - private static final Map derivedFontMap = new HashMap<>(); - static { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); try { - runescapeFont = Font.createFont(Font.TRUETYPE_FONT, + Font font = Font.createFont(Font.TRUETYPE_FONT, FontManager.class.getResourceAsStream("runescape.ttf")) .deriveFont(Font.PLAIN, 16); + ge.registerFont(font); - runescapeSmallFont = Font.createFont(Font.TRUETYPE_FONT, + runescapeFont = StyleContext.getDefaultStyleContext() + .getFont(font.getName(), Font.PLAIN, 16); + ge.registerFont(runescapeFont); + + Font smallFont = Font.createFont(Font.TRUETYPE_FONT, FontManager.class.getResourceAsStream("runescape_small.ttf")) .deriveFont(Font.PLAIN, 16); + ge.registerFont(smallFont); - runescapeBoldFont = Font.createFont(Font.TRUETYPE_FONT, + runescapeSmallFont = StyleContext.getDefaultStyleContext() + .getFont(smallFont.getName(), Font.PLAIN, 16); + ge.registerFont(runescapeSmallFont); + + Font boldFont = Font.createFont(Font.TRUETYPE_FONT, FontManager.class.getResourceAsStream("runescape_bold.ttf")) .deriveFont(Font.PLAIN, 16); + ge.registerFont(boldFont); - final LinkedHashMap _fontMap = new LinkedHashMap<>(); - _fontMap.put("Runescape", runescapeFont); - - // Get all available fonts on the system - Font[] availableFonts = ge.getAllFonts(); - // build bidirectional map - Arrays.stream(availableFonts).sorted(Comparator.comparing(Font::getFontName)).forEach(f -> - { - if (!_fontMap.containsKey(f.getFontName())) - { - _fontMap.put(f.getFontName(), f); - } - }); - fontMap = ImmutableBiMap.copyOf(_fontMap); - - ge.registerFont(runescapeFont); - ge.registerFont(runescapeSmallFont); + runescapeBoldFont = StyleContext.getDefaultStyleContext() + .getFont(boldFont.getName(), Font.PLAIN, 16); ge.registerFont(runescapeBoldFont); } catch (FontFormatException ex) @@ -109,25 +79,6 @@ public class FontManager } } - private static Font getFontOffCorrectSize(Font f) - { - // Size of the font is already set - if (f.getSize2D() > 1) - { - return f; - } - - // Dummy canvas for font metrics - Canvas c = new Canvas(); - - f = f.deriveFont(12f); - if (c.getFontMetrics(f).getMaxAscent() > 11) - { - f = f.deriveFont(11f); - } - return f; - } - public static Font getRunescapeFont() { return runescapeFont; @@ -142,93 +93,4 @@ public class FontManager { return runescapeBoldFont; } - - private static boolean isRunescapeFont(Font f) - { - return f.equals(runescapeFont) || f.equals(runescapeSmallFont) || f.equals(runescapeBoldFont); - } - - public static Font getSmallFont(Font f) - { - if (isRunescapeFont(f)) - { - return runescapeSmallFont; - } - - if (derivedFontMap.containsKey(f)) - { - return derivedFontMap.get(f).getSmall(); - } - - // cache and return - CachedFont cachedFont = new CachedFont(f); - derivedFontMap.put(f, cachedFont); - return cachedFont.getSmall(); - } - - public static Font getFontFromType(Font f, FontType type) - { - switch (type) - { - case SMALL: - return getSmallFont(f); - case BOLD: - if (isRunescapeFont(f)) - { - return runescapeBoldFont; - } - if (derivedFontMap.containsKey(f)) - { - return derivedFontMap.get(f).getBold(); - } - - // cache and return - CachedFont cachedBoldFont = new CachedFont(f); - derivedFontMap.put(f, cachedBoldFont); - return cachedBoldFont.getBold(); - default: //in this case regular - if (isRunescapeFont(f)) - { - return runescapeFont; - } - if (derivedFontMap.containsKey(f)) - { - return derivedFontMap.get(f).getReg(); - } - - // cache and return - CachedFont cachedFont = new CachedFont(f); - derivedFontMap.put(f, cachedFont); - return cachedFont.getReg(); - } - } - - public static Font lookupFont(String fontName) - { - return fontMap.get(fontName); - } - - public static String getFontName(Font font) - { - return fontMap.inverse().get(font); - } - - public static String[] getAvailableFontNames() - { - return fontMap.keySet().toArray(new String[0]); - } - - public static boolean isAvailable(Font font) - { - return fontMap.containsKey(font.getFontName()); - } - - public static Font getFontOrDefault(Font font) - { - if (font == null || !fontMap.containsKey(font.getFontName())) - { - return getRunescapeFont(); - } - return getFontOffCorrectSize(font); - } -} \ No newline at end of file +} diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/PluginErrorPanel.java b/runelite-client/src/main/java/net/runelite/client/ui/components/PluginErrorPanel.java index 92f48a6993..e7b2fad971 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/PluginErrorPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/PluginErrorPanel.java @@ -52,7 +52,7 @@ public class PluginErrorPanel extends JPanel noResultsTitle.setForeground(Color.WHITE); noResultsTitle.setHorizontalAlignment(SwingConstants.CENTER); - noResultsDescription.setFont(FontManager.getSmallFont(getFont())); + noResultsDescription.setFont(FontManager.getRunescapeSmallFont()); noResultsDescription.setForeground(Color.GRAY); noResultsDescription.setHorizontalAlignment(SwingConstants.CENTER); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/ProgressBar.java b/runelite-client/src/main/java/net/runelite/client/ui/components/ProgressBar.java index ac5ba1cd79..2204e47ead 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/ProgressBar.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/ProgressBar.java @@ -77,15 +77,15 @@ public class ProgressBar extends DimmableJPanel topIndent = 2; } - leftLabel.setFont(FontManager.getSmallFont(getFont())); + leftLabel.setFont(FontManager.getRunescapeSmallFont()); leftLabel.setForeground(Color.WHITE); leftLabel.setBorder(new EmptyBorder(topIndent, 5, 0, 0)); - rightLabel.setFont(FontManager.getSmallFont(getFont())); + rightLabel.setFont(FontManager.getRunescapeSmallFont()); rightLabel.setForeground(Color.WHITE); rightLabel.setBorder(new EmptyBorder(topIndent, 0, 0, 5)); - centerLabel.setFont(FontManager.getSmallFont(getFont())); + centerLabel.setFont(FontManager.getRunescapeSmallFont()); centerLabel.setForeground(Color.WHITE); centerLabel.setHorizontalAlignment(SwingConstants.CENTER); centerLabel.setBorder(new EmptyBorder(topIndent, 0, 0, 0)); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index ed26a222b9..12ab1fc386 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -56,7 +56,6 @@ import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.input.MouseAdapter; import net.runelite.client.input.MouseManager; -import net.runelite.client.ui.FontManager; import net.runelite.client.ui.JagexColors; import net.runelite.client.util.ColorUtil; import net.runelite.client.util.MiscUtils; @@ -122,10 +121,9 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener private void updateConfig() { // Overlay Fonts - Font clientFont = runeLiteConfig.clientFont(); - this.standardFont = FontManager.getFontFromType(clientFont, runeLiteConfig.fontType()); - this.tooltipFont = FontManager.getFontFromType(clientFont, runeLiteConfig.tooltipFontType()); - this.interfaceFont = FontManager.getFontFromType(clientFont, runeLiteConfig.interfaceFontType()); + this.standardFont = runeLiteConfig.fontType().getFont(); + this.tooltipFont = runeLiteConfig.tooltipFontType().getFont(); + this.interfaceFont = runeLiteConfig.interfaceFontType().getFont(); } private void onConfigChanged(ConfigChanged event) @@ -486,7 +484,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener // Set font based on configuration if (position == OverlayPosition.DYNAMIC || position == OverlayPosition.DETACHED) { - subGraphics.setFont(this.standardFont); + subGraphics.setFont(this.standardFont); // TODO MAKE USE CONFIG SYSTEM } else if (position == OverlayPosition.TOOLTIP) { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java index b643bc0062..be1a8b1da5 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/InfoBoxComponent.java @@ -39,7 +39,7 @@ import net.runelite.client.ui.FontManager; @Setter public class InfoBoxComponent implements LayoutableRenderableEntity { - private static final int SEPARATOR = 2; + private static final int SEPARATOR = 3; private static final int DEFAULT_SIZE = 32; @Getter @@ -63,15 +63,7 @@ public class InfoBoxComponent implements LayoutableRenderableEntity return new Dimension(); } - if (graphics.getFont().equals(FontManager.getRunescapeFont()) && getSize() > DEFAULT_SIZE) - { - graphics.setFont(FontManager.getRunescapeFont()); - } - else - { - graphics.setFont(FontManager.getSmallFont(graphics.getFont())); - } - + graphics.setFont(getSize() < DEFAULT_SIZE ? FontManager.getRunescapeSmallFont() : FontManager.getRunescapeFont()); final int baseX = preferredLocation.x; final int baseY = preferredLocation.y; @@ -99,7 +91,7 @@ public class InfoBoxComponent implements LayoutableRenderableEntity final TextComponent textComponent = new TextComponent(); textComponent.setColor(color); textComponent.setText(text); - textComponent.setPosition(new Point(baseX + ((size - metrics.stringWidth(text)) / 2), baseY + size - metrics.getMaxDescent() - SEPARATOR)); + textComponent.setPosition(new Point(baseX + ((size - metrics.stringWidth(text)) / 2), baseY + size - SEPARATOR)); textComponent.render(graphics); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/LineComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/LineComponent.java index 03b8c0a71d..a8bb184059 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/LineComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/LineComponent.java @@ -68,7 +68,7 @@ public class LineComponent implements LayoutableRenderableEntity final FontMetrics metrics = graphics.getFontMetrics(); final int baseX = preferredLocation.x; - final int baseY = preferredLocation.y; + final int baseY = preferredLocation.y + metrics.getHeight(); int x = baseX; int y = baseY; final int leftFullWidth = getLineWidth(left, metrics); @@ -92,7 +92,6 @@ public class LineComponent implements LayoutableRenderableEntity for (int i = 0; i < lineCount; i++) { - y += metrics.getMaxAscent(); String leftText = ""; String rightText = ""; @@ -117,7 +116,7 @@ public class LineComponent implements LayoutableRenderableEntity rightLineComponent.setText(rightText); rightLineComponent.setColor(rightColor); rightLineComponent.render(graphics); - y += metrics.getMaxDescent(); + y += metrics.getHeight(); } final Dimension dimension = new Dimension(preferredSize.width, y - baseY); @@ -125,7 +124,6 @@ public class LineComponent implements LayoutableRenderableEntity bounds.setSize(dimension); return dimension; } - y += metrics.getMaxAscent(); final TextComponent leftLineComponent = new TextComponent(); leftLineComponent.setPosition(new Point(x, y)); @@ -138,7 +136,6 @@ public class LineComponent implements LayoutableRenderableEntity rightLineComponent.setText(right); rightLineComponent.setColor(rightColor); rightLineComponent.render(graphics); - y += metrics.getMaxDescent(); final Dimension dimension = new Dimension(preferredSize.width, y - baseY); bounds.setLocation(preferredLocation); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ProgressBarComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ProgressBarComponent.java index 226c3da270..01f52d6ad0 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ProgressBarComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ProgressBarComponent.java @@ -109,7 +109,7 @@ public class ProgressBarComponent implements LayoutableRenderableEntity final int width = preferredSize.width; final int height = Math.max(preferredSize.height, 16); final int progressTextX = barX + (width - metrics.stringWidth(textToWrite)) / 2; - final int progressTextY = barY + ((height - metrics.getHeight()) / 2) + metrics.getMaxAscent(); + final int progressTextY = barY + ((height - metrics.getHeight()) / 2) + metrics.getHeight(); final int progressFill = (int) (width * Math.min(1, pc)); // Draw bar diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TitleComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TitleComponent.java index 9c9793be66..fa4c9bc3bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TitleComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TitleComponent.java @@ -64,7 +64,7 @@ public class TitleComponent implements LayoutableRenderableEntity titleComponent.setColor(color); titleComponent.setPosition(new Point( baseX + ((preferredSize.width - metrics.stringWidth(text)) / 2), - baseY + metrics.getMaxAscent())); + baseY + metrics.getHeight())); final Dimension rendered = titleComponent.render(graphics); final Dimension dimension = new Dimension(preferredSize.width, rendered.height); bounds.setLocation(preferredLocation); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TooltipComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TooltipComponent.java index 91ee736023..2179a6a5b6 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TooltipComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/TooltipComponent.java @@ -106,7 +106,7 @@ public class TooltipComponent implements RenderableEntity textComponent.setColor(nextColor); String text = line.substring(begin, j); textComponent.setText(text); - textComponent.setPosition(new Point(lineX, textY + (i + 1) * metrics.getMaxAscent() + i * metrics.getMaxDescent())); + textComponent.setPosition(new Point(lineX, textY + (i + 1) * textHeight - textDescent)); textComponent.render(graphics); lineX += metrics.stringWidth(text); @@ -144,7 +144,7 @@ public class TooltipComponent implements RenderableEntity textComponent.setColor(nextColor); String text = line.substring(begin, j + 1); textComponent.setText(text); - textComponent.setPosition(new Point(lineX, textY + (i + 1) * metrics.getMaxAscent() + i * metrics.getMaxDescent())); + textComponent.setPosition(new Point(lineX, textY + (i + 1) * textHeight - textDescent)); textComponent.render(graphics); lineX += metrics.stringWidth(text); @@ -159,7 +159,7 @@ public class TooltipComponent implements RenderableEntity final TextComponent textComponent = new TextComponent(); textComponent.setColor(nextColor); textComponent.setText(line.substring(begin)); - textComponent.setPosition(new Point(lineX, textY + (i + 1) * metrics.getMaxAscent() + i * metrics.getMaxDescent())); + textComponent.setPosition(new Point(lineX, textY + (i + 1) * textHeight - textDescent)); textComponent.render(graphics); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java index 919b31882c..fef98b9f84 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/worldmap/WorldMapOverlay.java @@ -278,7 +278,7 @@ public class WorldMapOverlay extends Overlay graphics.setColor(JagexColors.TOOLTIP_BORDER); graphics.drawRect((int) tooltipRect.getX(), (int) tooltipRect.getY(), (int) tooltipRect.getWidth(), (int) tooltipRect.getHeight()); graphics.setColor(JagexColors.TOOLTIP_TEXT); - graphics.drawString(tooltip, drawPoint.getX(), drawPoint.getY() + fm.getMaxAscent()); + graphics.drawString(tooltip, drawPoint.getX(), drawPoint.getY() + height); } private Point clipToRectangle(Point drawPoint, Rectangle mapDisplayRectangle)