use of org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel in project runelite by runelite.
the class ClientUI method init.
/**
* Initialize UI.
*
* @param client the client
* @throws Exception exception that can occur during creation of the UI
*/
public void init(@Nullable final Applet client) throws Exception {
this.client = client;
SwingUtilities.invokeAndWait(() -> {
// Set some sensible swing defaults
SwingUtil.setupDefaults();
// Use substance look and feel
SwingUtil.setTheme(new SubstanceGraphiteLookAndFeel());
// Use custom UI font
SwingUtil.setFont(FontManager.getRunescapeFont());
// Create main window
frame = new JFrame();
// Try to enable fullscreen on OSX
OSXUtil.tryEnableFullscreen(frame);
frame.setTitle(properties.getTitle());
frame.setIconImage(ICON);
// Prevent substance from using a resize cursor for pointing
frame.getLayeredPane().setCursor(Cursor.getDefaultCursor());
frame.setLocationRelativeTo(frame.getOwner());
frame.setResizable(true);
SwingUtil.addGracefulExitCallback(frame, runelite::shutdown, () -> client != null && client instanceof Client && ((Client) client).getGameState() != GameState.LOGIN_SCREEN);
final JPanel container = new JPanel();
container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS));
container.add(new ClientPanel(client));
navContainer = new JPanel();
navContainer.setLayout(new BorderLayout(0, 0));
navContainer.setMinimumSize(new Dimension(0, 0));
navContainer.setMaximumSize(new Dimension(0, Integer.MAX_VALUE));
container.add(navContainer);
pluginToolbar = new ClientPluginToolbar();
container.add(pluginToolbar);
titleToolbar = new ClientTitleToolbar();
frame.add(container);
});
}
Aggregations