From 52d07d57958a8ecf1dcd5eaad952142497982797 Mon Sep 17 00:00:00 2001 From: downthecrop Date: Mon, 28 Oct 2024 11:42:37 -0700 Subject: [PATCH] add mousewheel relay --- .../src/main/kotlin/KondoKit/AltCanvas.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugin-playground/src/main/kotlin/KondoKit/AltCanvas.kt b/plugin-playground/src/main/kotlin/KondoKit/AltCanvas.kt index cf3279d..319e7f5 100644 --- a/plugin-playground/src/main/kotlin/KondoKit/AltCanvas.kt +++ b/plugin-playground/src/main/kotlin/KondoKit/AltCanvas.kt @@ -44,6 +44,10 @@ class AltCanvas : Canvas() { override fun keyReleased(e: KeyEvent) = relayKeyEvent(e) { it.keyReleased(e) } override fun keyTyped(e: KeyEvent) = relayKeyEvent(e) { it.keyTyped(e) } }) + + addMouseWheelListener(object : MouseWheelListener { + override fun mouseWheelMoved(e: MouseWheelEvent) = relayMouseWheelEvent(e) + }) } override fun update(g: Graphics) = paint(g) @@ -115,6 +119,17 @@ class AltCanvas : Canvas() { for (listener in canvas.keyListeners) action(listener) } + private fun relayMouseWheelEvent(e: MouseWheelEvent) { + val scale = minOf(width.toDouble() / gameImage!!.width, height.toDouble() / gameImage!!.height) + val xOffset = ((width - gameImage!!.width * scale) / 2) + val yOffset = ((height - gameImage!!.height * scale) / 2) + + val adjustedX = ((e.x - xOffset) / scale).toInt().coerceIn(0, gameImage!!.width - 1) + val adjustedY = ((e.y - yOffset) / scale).toInt().coerceIn(0, gameImage!!.height - 1) + + canvas.dispatchEvent(MouseWheelEvent(this, e.id, e.`when`, e.modifiersEx, adjustedX, adjustedY, e.clickCount, e.isPopupTrigger, e.scrollType, e.scrollAmount, e.wheelRotation)) + } + fun updateGameImage() { if (IsHD()) renderGlRaster() else renderSoftwareRaster() repaint()