diff --git a/launcher/src/main/java/com/skcraft/launcher/dialog/AboutDialog.java b/launcher/src/main/java/com/skcraft/launcher/dialog/AboutDialog.java new file mode 100644 index 0000000..534be27 --- /dev/null +++ b/launcher/src/main/java/com/skcraft/launcher/dialog/AboutDialog.java @@ -0,0 +1,58 @@ +/* + * SK's Minecraft Launcher + * Copyright (C) 2010-2014 Albert Pham and contributors + * Please see LICENSE.txt for license information. + */ + +package com.skcraft.launcher.dialog; + +import com.skcraft.launcher.swing.ActionListeners; +import net.miginfocom.swing.MigLayout; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.KeyEvent; + +public class AboutDialog extends JDialog { + + public AboutDialog(Window parent) { + super(parent, "About", ModalityType.DOCUMENT_MODAL); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + initComponents(); + setResizable(false); + pack(); + setLocationRelativeTo(parent); + } + + private void initComponents() { + JPanel container = new JPanel(); + container.setLayout(new MigLayout("insets dialog")); + + container.add(new JLabel("Licensed under GNU General Public License, version 3."), "wrap, gapbottom unrel"); + container.add(new JLabel("You are using SKCraft Launcher, an open-source customizable
" + + "launcher platform that anyone can use."), "wrap, gapbottom unrel"); + container.add(new JLabel("SKCraft does not necessarily endorse the version of
" + + "the launcher that you are using."), "wrap, gapbottom unrel"); + + JButton okButton = new JButton("OK"); + JButton sourceCodeButton = new JButton("Website"); + + container.add(sourceCodeButton, "span, split 3, sizegroup bttn"); + container.add(okButton, "tag ok, sizegroup bttn"); + + add(container, BorderLayout.CENTER); + + getRootPane().setDefaultButton(okButton); + getRootPane().registerKeyboardAction(ActionListeners.dispose(this), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); + + okButton.addActionListener(ActionListeners.dispose(this)); + sourceCodeButton.addActionListener(ActionListeners.openURL(this, "https://github.com/SKCraft/Launcher")); + } + + public static void showAboutDialog(Window parent) { + AboutDialog dialog = new AboutDialog(parent); + dialog.setVisible(true); + } +} + diff --git a/launcher/src/main/java/com/skcraft/launcher/dialog/ConfigurationDialog.java b/launcher/src/main/java/com/skcraft/launcher/dialog/ConfigurationDialog.java index 7d0db34..aacc3f7 100644 --- a/launcher/src/main/java/com/skcraft/launcher/dialog/ConfigurationDialog.java +++ b/launcher/src/main/java/com/skcraft/launcher/dialog/ConfigurationDialog.java @@ -48,6 +48,7 @@ private final LinedBoxPanel buttonsPanel = new LinedBoxPanel(true); private final JButton okButton = new JButton(SharedLocale.tr("button.ok")); private final JButton cancelButton = new JButton(SharedLocale.tr("button.cancel")); + private final JButton aboutButton = new JButton(SharedLocale.tr("options.about")); private final JButton logButton = new JButton(SharedLocale.tr("options.launcherConsole")); /** @@ -115,6 +116,7 @@ tabbedPane.addTab(SharedLocale.tr("options.advancedTab"), SwingHelper.alignTabbedPane(advancedPanel)); buttonsPanel.addElement(logButton); + buttonsPanel.addElement(aboutButton); buttonsPanel.addGlue(); buttonsPanel.addElement(okButton); buttonsPanel.addElement(cancelButton); @@ -128,6 +130,13 @@ cancelButton.addActionListener(ActionListeners.dispose(this)); + aboutButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + AboutDialog.showAboutDialog(ConfigurationDialog.this); + } + }); + okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/launcher/src/main/resources/com/skcraft/launcher/lang/Launcher.properties b/launcher/src/main/resources/com/skcraft/launcher/lang/Launcher.properties index 8ede25f..6b0637d 100644 --- a/launcher/src/main/resources/com/skcraft/launcher/lang/Launcher.properties +++ b/launcher/src/main/resources/com/skcraft/launcher/lang/Launcher.properties @@ -42,7 +42,8 @@ options.proxyTab=Proxy options.gameKey=Game key\: options.advancedTab=Advanced -options.launcherConsole=Launcher console +options.about=About +options.launcherConsole=Console instance.openFolder=View folder instance.openSaves=View saves