Fix persistence issues in orx-gui

This commit is contained in:
Edwin Jakobs
2020-05-01 20:19:44 +02:00
parent 5f13710420
commit ba31693915
2 changed files with 21 additions and 10 deletions

View File

@@ -78,6 +78,8 @@ class GUI : Extension {
private var onChangeListener: ((name: String, value: Any?) -> Unit)? = null private var onChangeListener: ((name: String, value: Any?) -> Unit)? = null
override var enabled = true override var enabled = true
private var visible = true
var compartmentsCollapsedByDefault = true var compartmentsCollapsedByDefault = true
var doubleBind = false var doubleBind = false
@@ -91,18 +93,20 @@ class GUI : Extension {
onChangeListener = listener onChangeListener = listener
} }
override fun setup(program: Program) { val collapsed = ElementClass("collapsed")
override fun setup(program: Program) {
program.keyboard.keyDown.listen { program.keyboard.keyDown.listen {
if (it.key == KEY_F11) { if (it.key == KEY_F11) {
enabled = !enabled println("f11 pressed")
val collapsed = ElementClass("collapsed") visible = !visible
if(enabled) {
if(visible) {
panel.body!!.classes.remove(collapsed) panel.body!!.classes.remove(collapsed)
} else { } else {
panel.body!!.classes.add(collapsed) panel.body!!.classes.add(collapsed)
} }
sidebarState().hidden = !enabled sidebarState().hidden = !visible
} }
if (it.key == KEY_LEFT_SHIFT) { if (it.key == KEY_LEFT_SHIFT) {
@@ -342,12 +346,11 @@ class GUI : Extension {
} }
} }
if (sidebarState().hidden) { visible = !sidebarState().hidden
enabled = false if(visible) {
panel.enabled = false panel.body!!.classes.remove(collapsed)
} else { } else {
enabled = true panel.body!!.classes.add(collapsed)
panel.enabled = true
} }
program.extend(panel) program.extend(panel)
@@ -496,6 +499,7 @@ class GUI : Extension {
obj obj
)?.let { )?.let {
value = it value = it
setAndPersist(compartment.label, parameter.property as KMutableProperty1<Any, MutableList<Double>>, obj, it)
} }
} }
} }
@@ -521,6 +525,7 @@ class GUI : Extension {
obj obj
)?.let { )?.let {
value = it value = it
setAndPersist(compartment.label, parameter.property as KMutableProperty1<Any, Vector2>, obj, it)
} }
} }
} }
@@ -546,6 +551,7 @@ class GUI : Extension {
obj obj
)?.let { )?.let {
value = it value = it
setAndPersist(compartment.label, parameter.property as KMutableProperty1<Any, Vector3>, obj, it)
} }
} }
} }
@@ -571,6 +577,7 @@ class GUI : Extension {
obj obj
)?.let { )?.let {
value = it value = it
setAndPersist(compartment.label, parameter.property as KMutableProperty1<Any, Vector4>, obj, it)
} }
} }
} }
@@ -605,6 +612,7 @@ class GUI : Extension {
)?.let { enum -> )?.let { enum ->
(this@dropdownButton).value = items().find { item -> item.data == enum } (this@dropdownButton).value = items().find { item -> item.data == enum }
?: error("no matching item found") ?: error("no matching item found")
setAndPersist(compartment.label, parameter.property as KMutableProperty1<Any, Enum<*>>, obj, enum)
} }
} }
} }

View File

@@ -13,6 +13,7 @@ class SlidersVector2 : SequenceEditorBase("sliders-vector2") {
set(value) { set(value) {
baseValue[0] = value.x baseValue[0] = value.x
baseValue[1] = value.y baseValue[1] = value.y
requestRedraw()
} }
class ValueChangedEvent(val source: SequenceEditorBase, class ValueChangedEvent(val source: SequenceEditorBase,
@@ -48,6 +49,7 @@ class SlidersVector3 : SequenceEditorBase("sliders-vector3") {
baseValue[0] = value.x baseValue[0] = value.x
baseValue[1] = value.y baseValue[1] = value.y
baseValue[2] = value.z baseValue[2] = value.z
requestRedraw()
} }
class ValueChangedEvent(val source: SequenceEditorBase, class ValueChangedEvent(val source: SequenceEditorBase,
@@ -83,6 +85,7 @@ class SlidersVector4 : SequenceEditorBase("sliders-vector4") {
baseValue[1] = value.y baseValue[1] = value.y
baseValue[2] = value.z baseValue[2] = value.z
baseValue[3] = value.w baseValue[3] = value.w
requestRedraw()
} }
class ValueChangedEvent(val source: SequenceEditorBase, class ValueChangedEvent(val source: SequenceEditorBase,