Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
Fonts.java
1 package ij.plugin.frame;
2 import java.awt.*;
3 import java.awt.event.*;
4 
5 import ij.*;
6 import ij.plugin.*;
7 import ij.gui.*;
8 
10 public class Fonts extends PlugInFrame implements PlugIn, ItemListener {
11 
12  private static String[] sizes = {"8","9","10","12","14","18","24","28","36","48","60","72"};
13  private static int[] isizes = {8,9,10,12,14,18,24,28,36,48,60,72};
14  private Panel panel;
15  private Choice font;
16  private Choice size;
17  private Choice style;
18  private static Frame instance;
19 
20  public Fonts() {
21  super("Fonts");
22  if (instance!=null) {
23  instance.toFront();
24  return;
25  }
26  instance = this;
27  getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER, 10, 5));
28 
29  font = new Choice();
30  String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); //requires Java 2
31  for (int i=0; i<fonts.length; i++)
32  font.add(fonts[i]);
33  font.select(TextRoi.getFont());
34  font.addItemListener(this);
35  getContentPane().add(font);
36 
37  size = new Choice();
38  for (int i=0; i<sizes.length; i++)
39  size.add(sizes[i]);
40  size.select(getSizeIndex());
41  size.addItemListener(this);
42  getContentPane().add(size);
43 
44  style = new Choice();
45  style.add("Plain");
46  style.add("Bold");
47  style.add("Italic");
48  style.add("Bold+Italic");
49  int i = TextRoi.getStyle();
50  String s = "Plain";
51  if (i==Font.BOLD)
52  s = "Bold";
53  else if (i==Font.ITALIC)
54  s = "Italic";
55  else if (i==(Font.BOLD+Font.ITALIC))
56  s = "Bold+Italic";
57  style.select(s);
58  style.addItemListener(this);
59  getContentPane().add(style);
60 
61  setVisible(true);
62  IJ.register(Fonts.class);
63  }
64 
65  int getSizeIndex() {
66  int size = TextRoi.getSize();
67  int index=0;
68  for (int i=0; i<isizes.length; i++) {
69  if (size>=isizes[i])
70  index = i;
71  }
72  return index;
73  }
74 
75  public void itemStateChanged(ItemEvent e) {
76  String fontName = font.getSelectedItem();
77  int fontSize = Integer.parseInt(size.getSelectedItem());
78  String styleName = style.getSelectedItem();
79  int fontStyle = Font.PLAIN;
80  if (styleName.equals("Bold"))
81  fontStyle = Font.BOLD;
82  else if (styleName.equals("Italic"))
83  fontStyle = Font.ITALIC;
84  else if (styleName.equals("Bold+Italic"))
85  fontStyle = Font.BOLD+Font.ITALIC;
86  TextRoi.setFont(fontName, fontSize, fontStyle);
87  IJ.showStatus(fontSize+" point "+fontName + " " + styleName);
88  }
89 
90  public void windowClosing(WindowEvent e) {
91  super.windowClosing(e);
92  instance = null;
93  }
94 
95 }