From e591e45c1f9fdfa2ee044983c93a1f588e6913cc Mon Sep 17 00:00:00 2001 From: Axel Howind Date: Wed, 4 Dec 2024 08:42:39 +0100 Subject: [PATCH] descent is positive, introduce descentSigned() for negative descent --- .../src/main/java/com/dua3/utility/fx/FxFontUtil.java | 2 +- .../main/java/com/dua3/utility/awt/AwtFontUtil.java | 2 +- .../src/main/java/com/dua3/utility/text/FontData.java | 11 ++++++++++- .../java/com/dua3/utility/text/HtmlConverterTest.java | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/utility-fx/src/main/java/com/dua3/utility/fx/FxFontUtil.java b/utility-fx/src/main/java/com/dua3/utility/fx/FxFontUtil.java index 3c8040d0..a8e424c8 100644 --- a/utility-fx/src/main/java/com/dua3/utility/fx/FxFontUtil.java +++ b/utility-fx/src/main/java/com/dua3/utility/fx/FxFontUtil.java @@ -116,7 +116,7 @@ private FontData getFontData(Font fxFont) { Bounds bounds = text.getBoundsInLocal(); float ascent = (float) text.getBaselineOffset(); float height = (float) bounds.getHeight(); - float descent = ascent - height; // descent is negative! + float descent = height - ascent; text.setText(" "); bounds = text.getBoundsInLocal(); diff --git a/utility/src/main/java/com/dua3/utility/awt/AwtFontUtil.java b/utility/src/main/java/com/dua3/utility/awt/AwtFontUtil.java index 26c4e46c..2bf53f7c 100644 --- a/utility/src/main/java/com/dua3/utility/awt/AwtFontUtil.java +++ b/utility/src/main/java/com/dua3/utility/awt/AwtFontUtil.java @@ -269,7 +269,7 @@ public Font getDefaultFont() { private FontData getFontData(java.awt.Font awtFont) { FontDef fontDef = new FontDef(); - fontDef.setFamily(awtFont.getFamily()); + fontDef.setFamily(awtFont.getName()); fontDef.setSize(awtFont.getSize2D()); fontDef.setBold(awtFont.isBold()); fontDef.setItalic(awtFont.isItalic()); diff --git a/utility/src/main/java/com/dua3/utility/text/FontData.java b/utility/src/main/java/com/dua3/utility/text/FontData.java index f274f5ef..07e616ba 100644 --- a/utility/src/main/java/com/dua3/utility/text/FontData.java +++ b/utility/src/main/java/com/dua3/utility/text/FontData.java @@ -41,11 +41,20 @@ public record FontData( assert !family.isEmpty() : "family is the empty string"; assert size >= 0 : "size is negative"; assert ascent >= 0 : "ascent is negative"; - assert descent <= 0 : "descent is positive"; + assert descent >= 0 : "descent is negative"; assert height >= ascent : "inconsistent height"; assert spaceWidth > 0 : "space width must be positive"; } + /** + * Returns the negative value of the descent attribute for the font. + * + * @return the signed descent, which is the negative value of the descent. + */ + public double descentSigned() { + return -descent; + } + /** * Test if two fonts are similar. This method is provided to be used when inheriting fonts because equals * also tests both instances to be of the exact same class. diff --git a/utility/src/test/java/com/dua3/utility/text/HtmlConverterTest.java b/utility/src/test/java/com/dua3/utility/text/HtmlConverterTest.java index 0bf0aa1c..9206ea77 100644 --- a/utility/src/test/java/com/dua3/utility/text/HtmlConverterTest.java +++ b/utility/src/test/java/com/dua3/utility/text/HtmlConverterTest.java @@ -114,7 +114,7 @@ public void testFontCss() { builder.append(" too many fonts!"); builder.pop(style1); RichText rt = builder.toRichText(); - String expected = "Don't mix too many fonts!"; + String expected = "Don't mix too many fonts!"; String actual = HtmlConverter.create(HtmlConverter.useCss(true)).convert(rt); assertEquals(expected, actual);