From 2a118f614655921c16402ab6501b9e090ca899d0 Mon Sep 17 00:00:00 2001 From: Edwin Jakobs Date: Sun, 2 Feb 2020 21:36:19 +0100 Subject: [PATCH] Add GUI generator TextParameter annotations --- orx-gui/src/main/kotlin/Gui.kt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/orx-gui/src/main/kotlin/Gui.kt b/orx-gui/src/main/kotlin/Gui.kt index 5a35fa85..895e0ec1 100644 --- a/orx-gui/src/main/kotlin/Gui.kt +++ b/orx-gui/src/main/kotlin/Gui.kt @@ -62,7 +62,7 @@ class GUI : Extension { h3 { obj.title() ?: "untitled" } for (parameter in parameters) { - addSlider(obj, parameter) + addControl(obj, parameter) } } } @@ -75,7 +75,7 @@ class GUI : Extension { program.extend(panel) } - private fun Div.addSlider(obj: Any, parameter: Parameter) { + private fun Div.addControl(obj: Any, parameter: Parameter) { when(val type = parameter.parameterType) { ParameterType.Int -> { @@ -126,6 +126,18 @@ class GUI : Extension { } } } + + ParameterType.Text -> { + textfield { + label = parameter.label + value = (parameter.property as KMutableProperty1).get(obj) + events.valueChanged.subscribe { + value = it.newValue + (parameter.property as KMutableProperty1).set(obj, value) + onChangeListener?.invoke(parameter.property.name, it.newValue) + } + } + } } }