PhysicalConnectivity/src/main/kotlin/net/shadowfacts/cacao/Responder.kt

44 lines
890 B
Kotlin
Raw Normal View History

2021-02-27 19:02:30 +00:00
package net.shadowfacts.cacao
import net.shadowfacts.cacao.util.KeyModifiers
import net.shadowfacts.cacao.window.Window
/**
* @author shadowfacts
*/
interface Responder {
val window: Window?
val isFirstResponder: Boolean
get() = window?.firstResponder === this
val nextResponder: Responder?
fun becomeFirstResponder() {
if (window == null) {
throw RuntimeException("Cannot become first responder while not in Window")
}
window!!.firstResponder = this
}
fun didBecomeFirstResponder() {}
fun resignFirstResponder() {
if (window == null) {
throw RuntimeException("Cannot resign first responder while not in Window")
}
window!!.firstResponder = null
}
fun didResignFirstResponder() {}
fun charTyped(char: Char, modifiers: KeyModifiers): Boolean {
return false
}
fun keyPressed(keyCode: Int, modifiers: KeyModifiers): Boolean {
return false
}
}