info.laht.threekt.input.PeripheralsEventSource.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Port of the three.js 3D javascript library for Kotlin/JVM
The newest version!
package info.laht.threekt.input
import info.laht.threekt.WindowSize
interface PeripheralsEventSource {
val size: WindowSize
fun addKeyListener(listener: KeyListener)
fun removeKeyListener(listener: KeyListener): Boolean
fun addMouseListener(listener: MouseListener)
fun removeMouseListener(listener: MouseListener): Boolean
}
abstract class AbstractPeripheralsEventSource : PeripheralsEventSource {
protected var keyListeners: MutableList? = null
protected var mouseListeners: MutableList? = null
override fun addKeyListener(listener: KeyListener) {
keyListeners?.add(listener) ?: run {
keyListeners = mutableListOf(listener)
}
}
override fun addMouseListener(listener: MouseListener) {
mouseListeners?.add(listener) ?: run {
mouseListeners = mutableListOf(listener)
}
}
override fun removeKeyListener(listener: KeyListener): Boolean {
return keyListeners?.remove(listener) ?: false
}
override fun removeMouseListener(listener: MouseListener): Boolean {
return mouseListeners?.remove(listener) ?: false
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy