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;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |