Add a config setting for the game applet's size
This commit is contained in:
@@ -140,6 +140,7 @@ public class RuneLite
|
||||
eventBus.register(overlayRenderer);
|
||||
eventBus.register(menuManager);
|
||||
eventBus.register(chatMessageManager);
|
||||
eventBus.register(gui);
|
||||
|
||||
// Setup the notifier
|
||||
notifier = new Notifier(properties.getTitle(), gui.getTrayIcon());
|
||||
@@ -161,7 +162,19 @@ public class RuneLite
|
||||
// Load the session, including saved configuration
|
||||
sessionManager.loadSession();
|
||||
|
||||
SwingUtilities.invokeAndWait(() -> gui.showWithChrome(runeliteConfig.enableCustomChrome()));
|
||||
SwingUtilities.invokeAndWait(() ->
|
||||
{
|
||||
if (client != null)
|
||||
{
|
||||
client.setSize(runeliteConfig.gameSize());
|
||||
client.setPreferredSize(runeliteConfig.gameSize());
|
||||
|
||||
client.getParent().setPreferredSize(runeliteConfig.gameSize());
|
||||
client.getParent().setSize(runeliteConfig.gameSize());
|
||||
}
|
||||
|
||||
gui.showWithChrome(runeliteConfig.enableCustomChrome());
|
||||
});
|
||||
|
||||
eventBus.post(new ClientUILoaded());
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
*/
|
||||
package net.runelite.client.config;
|
||||
|
||||
import java.awt.Dimension;
|
||||
|
||||
@ConfigGroup(
|
||||
keyName = "runelite",
|
||||
name = "RuneLite",
|
||||
@@ -31,6 +33,16 @@ package net.runelite.client.config;
|
||||
)
|
||||
public interface RuneLiteConfig extends Config
|
||||
{
|
||||
@ConfigItem(
|
||||
keyName = "gameSize",
|
||||
name = "Game size",
|
||||
description = "The game will resize to this resolution upon starting the client"
|
||||
)
|
||||
default Dimension gameSize()
|
||||
{
|
||||
return new Dimension(765, 503);
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "chatCommandsRecolorEnabled",
|
||||
name = "Enable chat commands recolor",
|
||||
|
||||
@@ -28,7 +28,6 @@ import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.awt.event.ItemEvent;
|
||||
|
||||
@@ -61,10 +61,12 @@ import javax.swing.ToolTipManager;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.UnsupportedLookAndFeelException;
|
||||
import javax.swing.plaf.FontUIResource;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.client.RuneLiteProperties;
|
||||
import org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel;
|
||||
import org.pushingpixels.substance.internal.SubstanceSynapse;
|
||||
@@ -250,6 +252,52 @@ public class ClientUI extends JFrame
|
||||
repaint();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!event.getGroup().equals("runelite"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!event.getKey().equals("gameSize"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (client == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
String[] splitStr = event.getNewValue().split("x");
|
||||
int width = Integer.parseInt(splitStr[0]);
|
||||
int height = Integer.parseInt(splitStr[1]);
|
||||
|
||||
// The upper bounds are defined by the applet's max size
|
||||
// The lower bounds are taken care of by ClientPanel's setMinimumSize
|
||||
|
||||
if (width > 7680)
|
||||
{
|
||||
width = 7680;
|
||||
}
|
||||
|
||||
if (height > 2160)
|
||||
{
|
||||
height = 2160;
|
||||
}
|
||||
|
||||
Dimension size = new Dimension(width, height);
|
||||
|
||||
client.setSize(size);
|
||||
client.setPreferredSize(size);
|
||||
|
||||
client.getParent().setPreferredSize(size);
|
||||
client.getParent().setSize(size);
|
||||
|
||||
pack();
|
||||
}
|
||||
|
||||
private static void setUIFont(FontUIResource f)
|
||||
{
|
||||
final Enumeration keys = UIManager.getDefaults().keys();
|
||||
|
||||
Reference in New Issue
Block a user