aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/gui/config
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-09-06 17:48:07 +0200
committerLinnea Gräf <nea@nea.moe>2025-09-06 17:48:07 +0200
commit67da8fd538070bcb652538741fcfe89252173abe (patch)
tree24053cc0b409a15f562289b8b3effd13f6de4bd0 /src/main/kotlin/gui/config
parentd62ee562abe14cf06275b30411226e440a6ac3a7 (diff)
downloadFirmament-67da8fd538070bcb652538741fcfe89252173abe.tar.gz
Firmament-67da8fd538070bcb652538741fcfe89252173abe.tar.bz2
Firmament-67da8fd538070bcb652538741fcfe89252173abe.zip
feat: add support for mouse button binds
Diffstat (limited to 'src/main/kotlin/gui/config')
-rw-r--r--src/main/kotlin/gui/config/KeyBindingStateManager.kt22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/main/kotlin/gui/config/KeyBindingStateManager.kt b/src/main/kotlin/gui/config/KeyBindingStateManager.kt
index 500f0fa..d8ec359 100644
--- a/src/main/kotlin/gui/config/KeyBindingStateManager.kt
+++ b/src/main/kotlin/gui/config/KeyBindingStateManager.kt
@@ -25,11 +25,10 @@ class KeyBindingStateManager(
var lastPressed: GenericInputButton? = null
var label: Text = Text.literal("")
- fun onClick() {
+ fun onClick(mouseButton: Int) {
if (editing) {
- editing = false
- blur()
- } else {
+ keyboardEvent(GenericInputButton.mouse(mouseButton), true)
+ } else if (mouseButton == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
editing = true
requestFocus()
}
@@ -37,8 +36,8 @@ class KeyBindingStateManager(
}
fun keyboardEvent(keyCode: GenericInputButton, pressed: Boolean): Boolean {
- return if (pressed) onKeyPressed(keyCode, InputModifiers.getCurrentModifiers())
- else onKeyReleased(keyCode, InputModifiers.getCurrentModifiers())
+ return if (pressed) onKeyPressed(keyCode, InputModifiers.current())
+ else onKeyReleased(keyCode, InputModifiers.current())
}
fun onKeyPressed(
@@ -91,7 +90,7 @@ class KeyBindingStateManager(
var stroke = value().format()
if (editing) {
stroke = Text.empty()
- val modifiers = InputModifiers.getCurrentModifiers()
+ val modifiers = InputModifiers.current()
if (!modifiers.isEmpty()) {
stroke.append(modifiers.format())
stroke.append(" + ")
@@ -112,11 +111,16 @@ class KeyBindingStateManager(
false,
false
), action = {
- this@KeyBindingStateManager.onClick()
+ this@KeyBindingStateManager.onClick(it)
}) {
override fun keyboardEvent(event: KeyboardEvent, context: GuiImmediateContext): Boolean {
if (event is KeyboardEvent.KeyPressed) {
- return this@KeyBindingStateManager.keyboardEvent(GenericInputButton.ofKeyAndScan(event.keycode, event.scancode), event.pressed)
+ return this@KeyBindingStateManager.keyboardEvent(
+ GenericInputButton.ofKeyAndScan(
+ event.keycode,
+ event.scancode
+ ), event.pressed
+ )
}
return super.keyboardEvent(event, context)
}