/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.albite.font;
import javax.microedition.lcdui.Graphics;
/**
*
* @author Albus Dumbledore
*/
public abstract class AlbiteFont {
public static final int MAGIC_NUMBER = 1095516742;
public static final String FILE_EXTENSION = ".alf";
protected static final String INVALID_FILE_ERROR = "ALF file is corrupted.";
public abstract int getLineHeight();
public int getLineSpacing() {
return 0;
}
public final int charsWidth(
final char[] c, final int offset, final int length) {
int res = 0;
for (int i = offset; i < offset + length; i++) {
res += charWidth(c[i]);
}
return res;
}
public abstract int charWidth(char c);
public final int charsWidth(final char[] c) {
return charsWidth(c, 0, c.length);
}
public abstract void drawChars(
final Graphics g,
final int color,
final char[] buffer,
int x, final int y,
final int offset,
final int length);
public final void drawChars(
final Graphics g,
final int color,
final char[] buffer,
final int x, final int y) {
drawChars(g, color, buffer, x, y, 0, buffer.length);
}
public abstract void drawChar(
final Graphics g,
final int color,
final char c,
final int x, final int y);
}