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