40 lines
901 B
Kotlin
40 lines
901 B
Kotlin
|
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)
|
||
|
}
|
||
|
|
||
|
}
|