Переглянути джерело

Merge Yanrishatum/fix_letterSpacing

# Conflicts:
#	h2d/HtmlText.hx
trethaller 5 роки тому
батько
коміт
55dfef3be0
5 змінених файлів з 18 додано та 6 видалено
  1. 14 3
      h2d/HtmlText.hx
  2. 1 1
      h2d/Text.hx
  3. 1 1
      h2d/domkit/BaseComponents.hx
  4. 1 1
      hxd/fmt/bfnt/FontParser.hx
  5. 1 0
      hxd/fs/Convert.hx

+ 14 - 3
h2d/HtmlText.hx

@@ -41,6 +41,10 @@ class HtmlText extends Text {
 	}
 
 	public var condenseWhite(default,set) : Bool = true;
+	/**
+		Spacing after <img> tags in pixels.
+	**/
+	public var imageSpacing(default,set):Float = 1;
 
 	/**
 		Line height calculation mode controls how much space lines take up vertically. ( default : Accurate )
@@ -258,10 +262,10 @@ class HtmlText extends Text {
 				var i : Tile = loadImage(e.get("src"));
 				if ( i == null ) i = Tile.fromColor(0xFF00FF, 8, 8);
 
-				var size = metrics[metrics.length - 1].width + i.width + letterSpacing;
+				var size = metrics[metrics.length - 1].width + i.width + imageSpacing;
 				if (realMaxWidth >= 0 && size > realMaxWidth && metrics[metrics.length - 1].width > 0) {
 					if ( splitNode.node != null ) {
-						size = wordSplit() + i.width + letterSpacing;
+						size = wordSplit() + i.width + imageSpacing;
 						var info = metrics[metrics.length - 1];
 						// Bug: height/baseLine may be innacurate in case of sizeA sizeB<split>sizeA where sizeB is larger.
 						switch ( lineHeightMode ) {
@@ -607,7 +611,7 @@ class HtmlText extends Text {
 				}
 				newLine = false;
 				prevChar = -1;
-				xPos += i.width + letterSpacing;
+				xPos += i.width + imageSpacing;
 			default:
 			}
 			for( child in e )
@@ -655,6 +659,13 @@ class HtmlText extends Text {
 		}
 	}
 
+	function set_imageSpacing(s) {
+		if (imageSpacing == s) return s;
+		imageSpacing = s;
+		rebuild();
+		return s;
+	}
+
 	override function set_textColor(c) {
 		if( this.textColor == c ) return c;
 		this.textColor = c;

+ 1 - 1
h2d/Text.hx

@@ -42,7 +42,7 @@ class Text extends Drawable {
 		super(parent);
 		this.font = font;
 		textAlign = Left;
-		letterSpacing = 1;
+		letterSpacing = 0;
 		lineSpacing = 0;
 		text = "";
 		currentText = "";

+ 1 - 1
h2d/domkit/BaseComponents.hx

@@ -560,7 +560,7 @@ class TextComp extends DrawableComp implements domkit.Component.ComponentDecl<h2
 
 	@:p var text : String = "";
 	@:p(font) var font : h2d.Font;
-	@:p var letterSpacing = 1;
+	@:p var letterSpacing = 0;
 	@:p var lineSpacing = 0;
 	@:p(none) var maxWidth : Null<Int>;
 	@:p var textAlign : h2d.Text.Align = Left;

+ 1 - 1
hxd/fmt/bfnt/FontParser.hx

@@ -93,7 +93,7 @@ class FontParser {
 					var r = c.att.rect.split(" ");
 					var o = c.att.offset.split(" ");
 					var t = tile.sub(Std.parseInt(r[0]), Std.parseInt(r[1]), Std.parseInt(r[2]), Std.parseInt(r[3]), Std.parseInt(o[0]), Std.parseInt(o[1]));
-					var fc = new h2d.Font.FontChar(t, Std.parseInt(c.att.width) - 1);
+					var fc = new h2d.Font.FontChar(t, Std.parseInt(c.att.width));
 					var code = parseCode(c.att.code);
 					for( k in c.elements ){
 						var next = parseCode(k.att.id);

+ 1 - 0
hxd/fs/Convert.hx

@@ -195,6 +195,7 @@ class ConvertFNT2BFNT extends Convert {
 		// Fake tile create subs before discarding the font.
 		emptyTile = @:privateAccess new h2d.Tile(null, 0, 0, 0, 0, 0, 0);
 		super("fnt", "bfnt");
+		version = 1;
 	}
 
 	override public function convert()