From 37835b578db991aaac4137b56dd8ab99b8bc375e Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Fri, 9 Aug 2019 17:06:15 -0400 Subject: [PATCH] Add Label text alignment property --- .../kotlin/net/shadowfacts/cacao/view/Label.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/net/shadowfacts/cacao/view/Label.kt b/src/main/kotlin/net/shadowfacts/cacao/view/Label.kt index d72f9ed..df812a8 100644 --- a/src/main/kotlin/net/shadowfacts/cacao/view/Label.kt +++ b/src/main/kotlin/net/shadowfacts/cacao/view/Label.kt @@ -24,7 +24,8 @@ class Label( text: String, val shadow: Boolean = true, val maxLines: Int = 0, - val wrappingMode: WrappingMode = WrappingMode.WRAP + val wrappingMode: WrappingMode = WrappingMode.WRAP, + val textAlignment: TextAlignment = TextAlignment.LEFT ): View() { companion object { @@ -36,6 +37,10 @@ class Label( WRAP, NO_WRAP } + enum class TextAlignment { + LEFT, CENTER, RIGHT + } + /** * The text of this label. Mutating this field will update the intrinsic content size and trigger a layout. */ @@ -79,8 +84,13 @@ class Label( } for (i in 0 until lines.size) { + val x = when (textAlignment) { + TextAlignment.LEFT -> 0.0 + TextAlignment.CENTER -> (bounds.width + textRenderer.getStringWidth(lines[i])) / 2 + TextAlignment.RIGHT -> bounds.width - textRenderer.getStringWidth(lines[i]) + } val y = i * textRenderer.fontHeight - drawFunc(lines[i], 0f, y.toFloat(), textColorARGB) + drawFunc(lines[i], x.toFloat(), y.toFloat(), textColorARGB) } }