Add GUI generator TextParameter annotations

This commit is contained in:
Edwin Jakobs
2020-02-02 21:36:19 +01:00
parent 86584f7fcf
commit 2a118f6146

View File

@@ -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<Any, String>).get(obj)
events.valueChanged.subscribe {
value = it.newValue
(parameter.property as KMutableProperty1<Any, String>).set(obj, value)
onChangeListener?.invoke(parameter.property.name, it.newValue)
}
}
}
}
}