/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Tiny Look and Feel *
* *
* (C) Copyright 2003 - 2007 Hans Bickel *
* *
* For licensing information and credits, please refer to the *
* comment in file de.muntjak.tinylookandfeel.TinyLookAndFeel *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package de.muntjak.tinylookandfeel.controlpanel;
import java.awt.*;
import java.io.*;
import javax.swing.plaf.*;
import de.muntjak.tinylookandfeel.Theme;
/**
* ColoredFont
*
* @version 1.0
* @author Hans Bickel
*/
public class ColoredFont {
private ColorReference[] ref;
private FontUIResource font;
private boolean isPlainFont, isBoldFont;
public ColoredFont(String fontFamily, int style, int size) {
font = new FontUIResource(fontFamily, style, size);
}
public ColoredFont() {
font = new FontUIResource("sansserif", Font.PLAIN, 12);
isPlainFont = true;
}
public ColoredFont(ColorReference[] ref) {
this("sansserif", Font.PLAIN, 12, ref);
isPlainFont = true;
}
public ColoredFont(String fontFamily, int style, int size, ColorReference[] ref) {
font = new FontUIResource(fontFamily, style, size);
this.ref = ref;
if(ref[0] == null) {
ref[0] = new ColorReference(new Color(0, 0, 0));
}
if(ref[1] == null) {
ref[1] = new ColorReference(new Color(0, 0, 0));
}
if(ref[2] == null) {
ref[2] = new ColorReference(new Color(0, 0, 0));
}
if(ref[3] == null) {
ref[3] = new ColorReference(new Color(0, 0, 0));
}
}
public void setPlainFont(boolean b) {
isPlainFont = b;
if(b) isBoldFont = false;
}
public void setBoldFont(boolean b) {
isBoldFont = b;
if(b) isPlainFont = false;
}
public boolean isPlainFont() {
return isPlainFont;
}
public boolean isBoldFont() {
return isBoldFont;
}
public void setFont(String fontFamily, int style, int size) {
font = new FontUIResource(fontFamily, style, size);
}
public void setFont(Font font) {
this.font = new FontUIResource(font);
}
public void setFont(FontUIResource font) {
this.font = font;
}
public FontUIResource getFont() {
if(isPlainFont) {
return Theme.plainFont[Theme.style].font;
}
if(isBoldFont) {
return Theme.boldFont[Theme.style].font;
}
return font;
}
public ColorReference[] getColorReference() {
return ref;
}
public void setColorReference(ColorReference[] ref) {
this.ref = ref;
}
public void save(DataOutputStream out) throws IOException {
out.writeUTF(font.getFamily());
out.writeBoolean(font.isBold());
out.writeInt(font.getSize());
out.writeBoolean(isPlainFont);
out.writeBoolean(isBoldFont);
}
public void load(DataInputStream in) throws IOException {
font = new FontUIResource(in.readUTF(),
in.readBoolean() ? Font.BOLD : Font.PLAIN,
in.readInt());
isPlainFont = in.readBoolean();
isBoldFont = in.readBoolean();
}
}