Search in sources :

Example 1 with SubstanceGraphiteLookAndFeel

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);
    });
}
Also used : JPanel(javax.swing.JPanel) SubstanceGraphiteLookAndFeel(org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel) BorderLayout(java.awt.BorderLayout) JFrame(javax.swing.JFrame) BoxLayout(javax.swing.BoxLayout) Dimension(java.awt.Dimension) Client(net.runelite.api.Client)

Aggregations

BorderLayout (java.awt.BorderLayout)1 Dimension (java.awt.Dimension)1 BoxLayout (javax.swing.BoxLayout)1 JFrame (javax.swing.JFrame)1 JPanel (javax.swing.JPanel)1 Client (net.runelite.api.Client)1 SubstanceGraphiteLookAndFeel (org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel)1