Trigger requestDraw when changing TextElement text (#89)

* Fix #85 - orx-panel requestDraw() call

* Clean up imports
This commit is contained in:
Abe Pazos
2020-05-06 07:24:49 +02:00
committed by GitHub
parent 58d444b9a3
commit 8fddac2199
2 changed files with 23 additions and 23 deletions

View File

@@ -7,7 +7,6 @@ import org.openrndr.panel.controlManager
import org.openrndr.panel.elements.button import org.openrndr.panel.elements.button
import org.openrndr.panel.elements.div import org.openrndr.panel.elements.div
import org.openrndr.panel.elements.h1 import org.openrndr.panel.elements.h1
import org.openrndr.panel.elements.requestRedraw
import org.openrndr.panel.style.* import org.openrndr.panel.style.*
fun main() = application { fun main() = application {
@@ -45,31 +44,30 @@ fun main() = application {
"twist", "swim", "roll", "fly", "dance") "twist", "swim", "roll", "fly", "dance")
.forEachIndexed { i, word -> .forEachIndexed { i, word ->
// A fun way of generating a set of colors // A fun way of generating a set of colors
// of similar brightness: // of similar brightness:
// Grab a point on the surface of a sphere // Grab a point on the surface of a sphere
// and treat its coordinates as an rgb color. // and treat its coordinates as an rgb color.
val pos = Vector3.fromSpherical( val pos = Vector3.fromSpherical(
Spherical(i * 19.0, i * 17.0, 0.4)) Spherical(i * 19.0, i * 17.0, 0.4))
val rgb = ColorRGBa.fromVector(pos + 0.4) val rgb = ColorRGBa.fromVector(pos + 0.4)
button { button {
label = word label = word
style = styleSheet { style = styleSheet {
// Use Color.RGBa() to convert a ColorRGBa // Use Color.RGBa() to convert a ColorRGBa
// color (the standard color datatype) // color (the standard color datatype)
// into "CSS" format: // into "CSS" format:
background = Color.RGBa(rgb) background = Color.RGBa(rgb)
} }
// When the button is clicked replace // When the button is clicked replace
// the header text with the button's label // the header text with the button's label
events.clicked.listen { events.clicked.listen {
header.replaceText(it.source.label) header.replaceText(it.source.label)
header.requestRedraw() }
}
} }
}
}
} }
} }
} }

View File

@@ -70,12 +70,14 @@ class P : TextElement(ElementType("p"))
abstract class TextElement(et: ElementType) : Element(et) { abstract class TextElement(et: ElementType) : Element(et) {
fun text(text: String) { fun text(text: String) {
append(TextNode(text)) append(TextNode(text))
requestRedraw()
} }
fun replaceText(text : String) { fun replaceText(text : String) {
if (children.isEmpty()) { if (children.isEmpty()) {
text(text) text(text)
} else { } else {
(children.first() as? TextNode)?.text = text (children.first() as? TextNode)?.text = text
requestRedraw()
} }
} }
} }