Fix persistence issues in orx-gui
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user