1717
1818package com.lambda.gui
1919
20- import com.lambda.config.settings.NumericSetting
2120import com.lambda.config.settings.comparable.BooleanSetting
2221import com.lambda.config.settings.comparable.EnumSetting
2322import com.lambda.config.settings.FunctionSetting
2423import com.lambda.config.settings.complex.ColorSetting
2524import com.lambda.config.settings.complex.KeyBindSetting
25+ import com.lambda.config.settings.numeric.DoubleSetting
26+ import com.lambda.config.settings.numeric.FloatSetting
27+ import com.lambda.config.settings.numeric.IntegerSetting
28+ import com.lambda.config.settings.numeric.LongSetting
2629import com.lambda.core.Loadable
2730import com.lambda.gui.component.core.UIBuilder
2831import com.lambda.gui.component.layout.Layout
2932import com.lambda.gui.impl.clickgui.module.settings.impl.BooleanButton.Companion.booleanSetting
3033import com.lambda.gui.impl.clickgui.module.settings.impl.ColorPicker.Companion.colorPicker
34+ import com.lambda.gui.impl.clickgui.module.settings.impl.EnumSlider
3135import com.lambda.gui.impl.clickgui.module.settings.impl.EnumSlider.Companion.enumSetting
3236import com.lambda.gui.impl.clickgui.module.settings.impl.KeybindPicker.Companion.keybindSetting
3337import com.lambda.gui.impl.clickgui.module.settings.impl.NumberSlider.Companion.numericSetting
34- import com.lambda.gui.impl.clickgui.module.settings.impl.UnitButton.Companion.unitSetting
38+ import com.lambda.gui.impl.clickgui.module.settings.impl.UnitButton.Companion.unitButton
3539import kotlin.reflect.KClass
40+ import kotlin.reflect.KMutableProperty0
3641
3742object GuiManager : Loadable {
3843 val typeMap = mutableMapOf<KClass <* >, (owner: Layout , converted: Any ) -> Layout > ()
@@ -43,27 +48,73 @@ object GuiManager : Loadable {
4348
4449 override fun load (): String {
4550 typeAdapter<BooleanSetting > { owner, ref ->
46- owner.booleanSetting(ref)
51+ owner.booleanSetting(ref.name, ref::value).apply {
52+ visibility { ref.visibility() }
53+ }
4754 }
4855
4956 typeAdapter<EnumSetting <* >> { owner, ref ->
50- owner.enumSetting(ref)
57+ owner.enumSetting(ref.name, ref::value).apply {
58+ visibility { ref.visibility() }
59+ }
5160 }
5261
5362 typeAdapter<FunctionSetting <* >> { owner, ref ->
54- owner.unitSetting(ref)
63+ owner.unitButton(ref.name, ref::value).apply {
64+ visibility { ref.visibility() }
65+ }
5566 }
5667
57- typeAdapter<NumericSetting <* >> { owner, ref ->
58- owner.numericSetting(ref)
68+ typeAdapter<DoubleSetting > { owner, ref ->
69+ owner.numericSetting(
70+ ref.name, ref.unit,
71+ ref.range.start, ref.range.endInclusive, ref.step,
72+ ref::value
73+ ).apply {
74+ visibility { ref.visibility() }
75+ }
76+ }
77+
78+ typeAdapter<FloatSetting > { owner, ref ->
79+ owner.numericSetting(
80+ ref.name, ref.unit,
81+ ref.range.start, ref.range.endInclusive, ref.step,
82+ ref::value
83+ ).apply {
84+ visibility { ref.visibility() }
85+ }
86+ }
87+
88+ typeAdapter<IntegerSetting > { owner, ref ->
89+ owner.numericSetting(
90+ ref.name, ref.unit,
91+ ref.range.start, ref.range.endInclusive, ref.step,
92+ ref::value
93+ ).apply {
94+ visibility { ref.visibility() }
95+ }
96+ }
97+
98+ typeAdapter<LongSetting > { owner, ref ->
99+ owner.numericSetting(
100+ ref.name, ref.unit,
101+ ref.range.start, ref.range.endInclusive, ref.step,
102+ ref::value
103+ ).apply {
104+ visibility { ref.visibility() }
105+ }
59106 }
60107
61108 typeAdapter<KeyBindSetting > { owner, ref ->
62- owner.keybindSetting(ref)
109+ owner.keybindSetting(ref.name, ref::value).apply {
110+ visibility { ref.visibility() }
111+ }
63112 }
64113
65114 typeAdapter<ColorSetting > { owner, ref ->
66- owner.colorPicker(ref)
115+ owner.colorPicker(ref.name, ref::value).apply {
116+ visibility { ref.visibility() }
117+ }
67118 }
68119
69120 return " Loaded ${typeMap.size} gui type adapters."
0 commit comments