Disable docking since there's a weird bug where windows get locked up
parent
5e1cb85754
commit
7d939c6fe9
|
@ -1,6 +1,6 @@
|
||||||
package codes.som.hibiscus.features
|
package codes.som.hibiscus.features
|
||||||
|
|
||||||
class FeaturesRegistry {
|
class FeaturesRegistry {
|
||||||
private val features = ALL_FEATURES.map { it() }
|
private val features = ALL_FEATURES.map { it() }.sortedBy { it.name }
|
||||||
fun getAllFeatures() = features.asSequence()
|
fun getAllFeatures() = features.asSequence()
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,9 @@ object ImGuiRenderer {
|
||||||
with(ImGui.getIO()) {
|
with(ImGui.getIO()) {
|
||||||
iniFilename = null // We don't want to save .ini file
|
iniFilename = null // We don't want to save .ini file
|
||||||
addConfigFlags(ImGuiConfigFlags.NavEnableKeyboard) // Enable Keyboard Controls
|
addConfigFlags(ImGuiConfigFlags.NavEnableKeyboard) // Enable Keyboard Controls
|
||||||
addConfigFlags(ImGuiConfigFlags.DockingEnable) // Enable Docking
|
|
||||||
addConfigFlags(ImGuiConfigFlags.ViewportsEnable) // Enable Multi-Viewport / Platform Windows
|
addConfigFlags(ImGuiConfigFlags.ViewportsEnable) // Enable Multi-Viewport / Platform Windows
|
||||||
configViewportsNoTaskBarIcon = true
|
configViewportsNoTaskBarIcon = true
|
||||||
|
configDockingWithShift = true
|
||||||
}
|
}
|
||||||
|
|
||||||
applyHibiscusImGuiTheme()
|
applyHibiscusImGuiTheme()
|
||||||
|
|
|
@ -5,17 +5,18 @@ import codes.som.hibiscus.api.feature.Feature
|
||||||
import codes.som.hibiscus.api.feature.FeatureCategory
|
import codes.som.hibiscus.api.feature.FeatureCategory
|
||||||
import imgui.ImGui
|
import imgui.ImGui
|
||||||
import imgui.flag.ImGuiCol
|
import imgui.flag.ImGuiCol
|
||||||
import imgui.flag.ImGuiCond.FirstUseEver
|
import imgui.flag.ImGuiCond.Once
|
||||||
import imgui.flag.ImGuiWindowFlags
|
import imgui.flag.ImGuiWindowFlags
|
||||||
import imgui.flag.ImGuiWindowFlags.AlwaysVerticalScrollbar
|
import imgui.flag.ImGuiWindowFlags.AlwaysVerticalScrollbar
|
||||||
|
import imgui.type.ImBoolean
|
||||||
|
|
||||||
object ModuleControlsUI {
|
object ModuleControlsUI {
|
||||||
private val moduleValueWindows = mutableMapOf<Feature, BooleanArray>()
|
private val moduleValueWindows = mutableMapOf<Feature, ImBoolean>()
|
||||||
|
|
||||||
private fun categoryPanel(category: FeatureCategory, initialX: Float, initialY: Float) {
|
private fun categoryPanel(category: FeatureCategory, initialX: Float, initialY: Float) {
|
||||||
ImGui.setNextWindowPos(initialX, initialY, FirstUseEver)
|
ImGui.setNextWindowPos(initialX, initialY, Once)
|
||||||
ImGui.setNextWindowCollapsed(true, FirstUseEver)
|
ImGui.setNextWindowCollapsed(true, Once)
|
||||||
ImGui.setNextWindowSize(300f, 0f, FirstUseEver)
|
ImGui.setNextWindowSize(300f, 0f, Once)
|
||||||
|
|
||||||
ImGui.begin(category.humanName, AlwaysVerticalScrollbar)
|
ImGui.begin(category.humanName, AlwaysVerticalScrollbar)
|
||||||
|
|
||||||
|
@ -51,15 +52,16 @@ object ModuleControlsUI {
|
||||||
ImGui.popStyleColor()
|
ImGui.popStyleColor()
|
||||||
|
|
||||||
if (feature.values.exist()) {
|
if (feature.values.exist()) {
|
||||||
val showValueWindow = moduleValueWindows.getOrPut(feature) { booleanArrayOf(false) }
|
val showValueWindow = moduleValueWindows.getOrPut(feature) { ImBoolean(false) }
|
||||||
|
|
||||||
ImGui.nextColumn()
|
ImGui.nextColumn()
|
||||||
if (ImGui.radioButton("##${feature.name} values", showValueWindow[0])) {
|
if (ImGui.radioButton("##${feature.name} values", showValueWindow.get())) {
|
||||||
showValueWindow[0] = !showValueWindow[0]
|
showValueWindow.set(!showValueWindow.get())
|
||||||
}
|
}
|
||||||
|
ImGui.nextColumn()
|
||||||
|
|
||||||
if (showValueWindow[0]) {
|
if (showValueWindow.get()) {
|
||||||
if (ImGui.begin("${feature.name}##Feature Controls", ImGuiWindowFlags.NoCollapse)) {
|
if (ImGui.begin("${feature.name}##Feature Controls", showValueWindow, ImGuiWindowFlags.NoCollapse)) {
|
||||||
for (value in feature.values)
|
for (value in feature.values)
|
||||||
value.drawUIControl()
|
value.drawUIControl()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue