Mercurial > hg > forks > multipaint-js
view java.pde @ 2:5eb3559e1778
Run everything through JS-beautifier and remove trailing whitespace.
Manually correct some tables etc.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 03 Jul 2018 21:02:33 +0300 |
parents | ebd5689e2985 |
children |
line wrap: on
line source
// Pure Java UI elements, such as a file selector // Adapted from Marq's PETSCII editor // (this crap really makes me lose all my will to live, but it's needed now) import java.awt.event.*; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.awt.Dimension; import java.awt.GridLayout; class Selector extends JPanel implements ActionListener { int selection; protected JButton b[]; Selector(String s) // Split string into options { String splitz[] = splitTokens(s, ","); b = new JButton[splitz.length]; setLayout(new GridLayout(splitz.length, 1, 1, 1)); for (int i = 0; i < splitz.length; i++) { b[i] = new JButton(splitz[i]); b[i].setActionCommand(str(i + '0')); b[i].addActionListener(this); b[i].setHorizontalAlignment(SwingConstants.LEFT); add(b[i]); } selection = -1; } public void actionPerformed(ActionEvent e) { for (int i = 0; i < b.length; i++) { if (str(i + '0').equals(e.getActionCommand())) selection = i; } } } // Select from a list int selector(String title, String opt) { JFrame frame = new JFrame(title); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); Selector s = new Selector(opt); s.setOpaque(true); frame.setContentPane(s); //Display the window. frame.pack(); frame.setVisible(true); frame.setLocationRelativeTo(null); // About in the middle while (s.selection == -1) { frame.toFront(); // A bit of a kludge to force the window on top frame.repaint(); try { Thread.sleep(200); } catch (Exception e) {}; } frame.setVisible(false); System.gc(); // It'll leak anyway... return (s.selection); } final int LOADPIX = 0, LOADIMG = 1, SAVEIMG = 2, SAVETXT = 3, SAVEEMU = 4, SAVEFMT = 5, LOADFMT = 6; // File selector String fileselector(String dir, int mode) { JFileChooser fc = new JFileChooser(dir); fc.setPreferredSize(new Dimension(480, 500)); fc.setDialogTitle("Select a File"); if (mode == LOADPIX) // Show image files fc.setFileFilter(new FileNameExtensionFilter("Images (*.png,*.gif,*.jpg)", "png", "gif", "jpg", "jpeg")); if (mode == LOADIMG || mode == SAVEIMG) fc.setFileFilter(new FileNameExtensionFilter("Multipaint files (*.bin) or png (*.png)", "bin", "png", "jpg")); if (mode == SAVEEMU) fc.setFileFilter(new FileNameExtensionFilter("Export files (*." + g_expname + ") ", g_expname)); if (mode == SAVETXT) fc.setFileFilter(new FileNameExtensionFilter("Export source (*.txt) ", "c", "asm", "txt")); if (mode == SAVEFMT || mode == LOADFMT) fc.setFileFilter(new FileNameExtensionFilter(g_formatname + " (*." + g_formatextension + ")", g_formatextension)); if (mode <= LOADIMG || mode == LOADFMT) fc.setApproveButtonText("Load"); if (mode == SAVEIMG) fc.setApproveButtonText("Save"); if (mode == SAVETXT | mode == SAVEEMU || mode == SAVEFMT) fc.setApproveButtonText("Export"); int returnVal = fc.showOpenDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { // Save cwd for next time if (mode == LOADPIX) refpath = fc.getCurrentDirectory().getPath(); else path = fc.getCurrentDirectory().getPath(); File file = fc.getSelectedFile(); return file.getPath(); } else return null; }