44 lines
890 B
Kotlin
44 lines
890 B
Kotlin
|
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
|
||
|
}
|
||
|
|
||
|
}
|