diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml index 27a7651..34b7c40 100644 --- a/.idea/material_theme_project_new.xml +++ b/.idea/material_theme_project_new.xml @@ -3,7 +3,9 @@ diff --git a/resources/logo.png b/resources/logo.png new file mode 100644 index 0000000..323859a Binary files /dev/null and b/resources/logo.png differ diff --git a/resources/logo_about.png b/resources/logo_about.png new file mode 100644 index 0000000..2043256 Binary files /dev/null and b/resources/logo_about.png differ diff --git a/src/Kermit.java b/src/Kermit.java index efe2b18..e156f5a 100644 --- a/src/Kermit.java +++ b/src/Kermit.java @@ -268,6 +268,7 @@ public class Kermit implements ActionListener { frame.setDefaultCloseOperation(0); frame.setResizable(false); frame.setLayout(null); + frame.setLocationRelativeTo(null); frame.setVisible(true); break; case SDK_INSTALL: diff --git a/src/Main.java b/src/Main.java index 852f245..e592f9c 100644 --- a/src/Main.java +++ b/src/Main.java @@ -28,7 +28,7 @@ import javax.swing.*; public class Main { // Build Information - public static final String vstr = "debug"; + public static final String vstr = "PREALPHA"; public static final String vcode = "Natasha"; public static final int vint = 0; @@ -57,6 +57,7 @@ public class Main { // license string System.out.printf("FIRESTAR MOD MANAGER for WipEout 2048\nversion " + vstr + " (codename " + vcode + ")\n" + "JVM host appears to be " + System.getProperty("os.name") + + "\nRunning from " + System.getProperty("user.dir") + "\nCopyright (C) 2024 bonkmaykr\n\nThis program is free software: you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation, either version 3 of the License, or\n" + diff --git a/src/MissPiggy.java b/src/MissPiggy.java index 07aa5c3..4e47c1a 100644 --- a/src/MissPiggy.java +++ b/src/MissPiggy.java @@ -109,6 +109,7 @@ public class MissPiggy implements ActionListener { frame.setResizable(true); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.setLayout(new GridLayout()); + frame.setLocationRelativeTo(null); frame.setVisible(true); } @@ -141,7 +142,8 @@ public class MissPiggy implements ActionListener { if (actionEvent.getSource() == fileMenu.getItem(0)) {deployModGUI();} else if (actionEvent.getSource() == fileMenu.getItem(1)) {importModGUI();} else if (actionEvent.getSource() == fileMenu.getItem(2)) {removeAllGUI();} else - if (actionEvent.getSource() == fileMenu.getItem(4)) {optionsGUI();} + if (actionEvent.getSource() == fileMenu.getItem(4)) {optionsGUI();} else + if (actionEvent.getSource() == helpMenu.getItem(0)) {new Rowlf().displayAboutScreen();} } // Will likely split the below functions into separate classes to work with intellij GUI designer. diff --git a/src/Rowlf.form b/src/Rowlf.form new file mode 100644 index 0000000..20e14cf --- /dev/null +++ b/src/Rowlf.form @@ -0,0 +1,57 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/Rowlf.java b/src/Rowlf.java new file mode 100644 index 0000000..b2a7c36 --- /dev/null +++ b/src/Rowlf.java @@ -0,0 +1,74 @@ +/* + * Firestar Mod Manager + * Copyright (C) 2024 bonkmaykr + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see https://www.gnu.org/licenses/. + */ + +import javax.imageio.*; +import javax.swing.*; +import java.awt.*; +import java.awt.image.*; +import java.io.File; +import java.io.IOException; + +import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE; + +public class Rowlf { + JFrame frame = new JFrame(); + JPanel frameContainer; + BufferedImage logo; + JLabel picLabel; + private JTextField informationText; + private JLabel versionLabel; + private JLabel environmentLabel; + + public void displayAboutScreen() { + try { + logo = ImageIO.read(new File(System.getProperty("user.dir") + "/resources/logo_about.png")); + } catch (IOException e) { + System.out.println("ERROR: Failed to open About screen because we couldn't find an image needed to display the page."); + throw new RuntimeException(e); + } + + //frame.add(picLabel); + frame.add(frameContainer); // initialize window contents -- will be handled by IntelliJ IDEA + picLabel.setIcon(new ImageIcon(logo));picLabel.setText(""); + + informationText.getDocument().putProperty("filterNewlines", Boolean.FALSE); + informationText.setText("Created by bonkmaykr\n" + + "a.k.a. \"Downforce Agent\"\n" + + "\n" + + "Special thanks to:\n" + + "ThatOneBonk, for almost beating me to it\n" + + "Wirlaburla, for web hosting and code help\n" + + "and to all the PSVita hackers who made this possible"); + informationText.setHighlighter(null); + informationText.getCaret().setVisible(false); + informationText.setFocusable(false); + + versionLabel.setText("Version " + Main.vstr + " (" + Main.vcode + ")"); + environmentLabel.setText("Running on Java " + System.getProperty("java.version") + " for " + System.getProperty("os.name")); + + // display window + frame.setSize(400, 320); + frame.setTitle("About Firestar"); + frame.setResizable(false); + frame.setAlwaysOnTop(true); + frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); + frame.setLayout(new GridLayout()); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } +}