forked from LeenkxTeam/LNXSDK
92 lines
2.3 KiB
Haxe
92 lines
2.3 KiB
Haxe
package kha.java;
|
|
|
|
import kha.FontStyle;
|
|
import java.awt.image.BufferedImage;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.Font in JFont;
|
|
|
|
// @:classCode('
|
|
// private static java.awt.image.BufferedImage testImage = new java.awt.image.BufferedImage(1, 1, java.awt.image.BufferedImage.TYPE_INT_ARGB);
|
|
// private static java.awt.Graphics2D testGraphics;
|
|
// public java.awt.Font font;
|
|
// static {
|
|
// testGraphics = testImage.createGraphics();
|
|
// }
|
|
// ')
|
|
class Font implements Resource {
|
|
static var testImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
|
|
static var testGraphics: Graphics2D;
|
|
|
|
public var font: JFont;
|
|
public var myName: String;
|
|
public var myStyle: FontStyle;
|
|
public var mySize: Float;
|
|
|
|
public function new(name: String, style: FontStyle, size: Float) {
|
|
if (testGraphics == null)
|
|
testGraphics = testImage.createGraphics();
|
|
init(name, style, size);
|
|
}
|
|
|
|
public var name(get, never): String;
|
|
|
|
function get_name(): String {
|
|
return myName;
|
|
}
|
|
|
|
public var style(get, never): FontStyle;
|
|
|
|
function get_style(): FontStyle {
|
|
return myStyle;
|
|
}
|
|
|
|
public var size(get, never): Float;
|
|
|
|
function get_size(): Float {
|
|
return mySize;
|
|
}
|
|
|
|
// @:functionCode('
|
|
// font = new java.awt.Font(name, 0, (int)size);
|
|
// myName = name;
|
|
// myStyle = style;
|
|
// mySize = size;
|
|
// ')
|
|
function init(name: String, style: FontStyle, size: Float) {
|
|
font = new JFont(name, 0, Std.int(size));
|
|
myName = name;
|
|
myStyle = style;
|
|
mySize = size;
|
|
}
|
|
|
|
// @:functionCode('
|
|
// return testGraphics.getFontMetrics(font).getHeight();
|
|
// ')
|
|
public function height(fontSize: Int): Float {
|
|
return testGraphics.getFontMetrics(font).getHeight();
|
|
}
|
|
|
|
// @:functionCode('
|
|
// return testGraphics.getFontMetrics(font).stringWidth(str);
|
|
// ')
|
|
public function width(fontSize: Int, str: String): Float {
|
|
return testGraphics.getFontMetrics(font).stringWidth(str);
|
|
// return 0;
|
|
}
|
|
|
|
// @:functionCode('
|
|
// return testGraphics.getFontMetrics(font).getHeight() - testGraphics.getFontMetrics(font).getLeading();
|
|
// ')
|
|
public function baseline(fontSize: Int): Float {
|
|
return testGraphics.getFontMetrics(font).getHeight() - testGraphics.getFontMetrics(font).getLeading();
|
|
// return 0;
|
|
}
|
|
|
|
// @:functionCode('
|
|
// font = null;
|
|
// ')
|
|
public function unload(): Void {
|
|
font = null;
|
|
}
|
|
}
|