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 } }