ASMR/src/main/kotlin/net/shadowfacts/shadowui/view/Label.kt

40 lines
901 B
Kotlin
Raw Normal View History

2019-06-22 14:56:12 +00:00
package net.shadowfacts.shadowui.view
import net.minecraft.client.MinecraftClient
import net.minecraft.client.font.TextRenderer
import net.shadowfacts.shadowui.View
import net.shadowfacts.shadowui.geometry.Size
import net.shadowfacts.shadowui.util.Color
class Label(text: String): View() {
companion object {
val textRenderer: TextRenderer
get() = MinecraftClient.getInstance().textRenderer
}
var text: String = text
set(value) {
field = value
updateIntrinsicContentSize()
}
var textColor = Color(0x404040)
override fun wasAdded() {
super.wasAdded()
updateIntrinsicContentSize()
}
private fun updateIntrinsicContentSize() {
val width = textRenderer.getStringWidth(text)
val height = textRenderer.fontHeight
intrinsicContentSize = Size(width.toDouble(), height.toDouble())
}
override fun drawContent() {
textRenderer.draw(text, 0f, 0f, textColor.argb)
}
}