mirror of
https://github.com/processing/processing4.git
synced 2026-02-11 17:40:48 +01:00
menu work, add files to sketch, font builder
This commit is contained in:
149
processing/app/PdeFontBuilder.java
Normal file
149
processing/app/PdeFontBuilder.java
Normal file
@@ -0,0 +1,149 @@
|
||||
/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
||||
|
||||
/*
|
||||
PdeFontBuilder - gui interface to font creation heaven/hell
|
||||
Part of the Processing project - http://Proce55ing.net
|
||||
|
||||
Copyright (c) 2001-03 Massachusetts Institute of Technology
|
||||
|
||||
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 2 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, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.io.*;
|
||||
//import java.net.*;
|
||||
//import java.text.*;
|
||||
//import java.util.*;
|
||||
//import java.util.zip.*;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.*;
|
||||
|
||||
|
||||
public class PdeFontBuilder extends JFrame {
|
||||
File targetFolder;
|
||||
|
||||
//JComboBox fontSelector;
|
||||
JList fontSelector;
|
||||
JComboBox styleSelector;
|
||||
JTextField sizeSelector;
|
||||
|
||||
static final String styles[] = {
|
||||
"Plain", "Bold", "Italic", "Bold Italic"
|
||||
};
|
||||
|
||||
String fontName;
|
||||
|
||||
|
||||
// font.deriveFont(float size)
|
||||
|
||||
public PdeFontBuilder(File targetFolder) {
|
||||
super("Create Font");
|
||||
|
||||
this.targetFolder = targetFolder;
|
||||
|
||||
Container pain = getContentPane();
|
||||
pain.setLayout(new BoxLayout(pain, BoxLayout.Y_AXIS));
|
||||
|
||||
String labelText =
|
||||
"Use this tool to create bitmap fonts for your program.\n" +
|
||||
"Select a font and size, and click 'OK' to generate a font\n" +
|
||||
"and add it to the data folder of the current sketch.\n" +
|
||||
"The recommended size for 3D applications is 48 points.";
|
||||
|
||||
//JLabel label = new JLabel(labelText);
|
||||
JTextArea textarea = new JTextArea(labelText);
|
||||
textarea.setFont(new Font("Dialog", Font.PLAIN, 12));
|
||||
pain.add(textarea);
|
||||
//pain.add(label);
|
||||
|
||||
JPanel panel = new JPanel();
|
||||
//panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
||||
|
||||
GraphicsEnvironment ge =
|
||||
GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||
|
||||
Font fonts[] = ge.getAllFonts();
|
||||
String families[] = ge.getAvailableFontFamilyNames();
|
||||
|
||||
// don't care about families starting with . or #
|
||||
// also ignore dialog, dialoginput, monospaced, serif, sansserif
|
||||
|
||||
/*
|
||||
for (int i = 0; i < fonts.length; i++) {
|
||||
//System.out.println(fonts[i]);
|
||||
if (fonts[i].getFontName().indexOf(fonts[i].getFamily()) != 0) {
|
||||
System.out.println(fonts[i]);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
//fontSelector = new JComboBox();
|
||||
fontSelector = new JList(families);
|
||||
JScrollPane fontScroller = new JScrollPane(fontSelector);
|
||||
panel.add(fontScroller);
|
||||
//fontSelector.setFont(new Font("SansSerif", Font.PLAIN, 10));
|
||||
/*
|
||||
fontSelector.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
fontName = e.getActionCommand();
|
||||
}
|
||||
});
|
||||
*/
|
||||
//String list[] = Toolkit.getDefaultToolkit().getFontList();
|
||||
//for (int i = 0; i < list.length; i++) {
|
||||
/*
|
||||
for (int i = 0; i < families.length; i++) {
|
||||
//fontSelector.addItem(list[i]);
|
||||
fontSelector.addItem(families[i]);
|
||||
}
|
||||
panel.add(fontSelector);
|
||||
*/
|
||||
|
||||
styleSelector = new JComboBox();
|
||||
for (int i = 0; i < styles.length; i++) {
|
||||
styleSelector.addItem(styles[i]);
|
||||
}
|
||||
styleSelector.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String command = e.getActionCommand();
|
||||
int style = Font.PLAIN;
|
||||
if (command.indexOf("Bold") != -1) {
|
||||
style |= Font.BOLD;
|
||||
}
|
||||
if (command.indexOf("Italic") != -1) {
|
||||
style |= Font.ITALIC;
|
||||
}
|
||||
}
|
||||
});
|
||||
panel.add(styleSelector);
|
||||
|
||||
sizeSelector = new JTextField("48");
|
||||
panel.add(sizeSelector);
|
||||
|
||||
pain.add(panel);
|
||||
|
||||
JPanel buttons = new JPanel();
|
||||
JButton cancelButton = new JButton("Cancel");
|
||||
JButton okButton = new JButton("OK");
|
||||
buttons.add(cancelButton);
|
||||
buttons.add(okButton);
|
||||
pain.add(buttons);
|
||||
|
||||
pack();
|
||||
show();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user