X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2Fhumaninput%2FKeyboardInputHandler.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2Fhumaninput%2FKeyboardInputHandler.java;h=3f26cdf0550710f10b6a59ee58fe0bbf2b4823da;hb=4d8ec2cf940099ca17f075effd1c310a99f3c3a6;hp=0000000000000000000000000000000000000000;hpb=7e3faa91462a3639b58e83b766b9d5a01bb9cfd2;p=sixth-3d.git
diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardInputHandler.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardInputHandler.java
new file mode 100644
index 0000000..3f26cdf
--- /dev/null
+++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/KeyboardInputHandler.java
@@ -0,0 +1,40 @@
+/*
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
+ */
+package eu.svjatoslav.sixth.e3d.gui.humaninput;
+
+import eu.svjatoslav.sixth.e3d.gui.ViewPanel;
+
+import java.awt.event.KeyEvent;
+
+/**
+ * This is the process:
+ *
+ * 1. Component receives focus, perhaps because user clicked on it with the mouse.
+ * 2. Now component will receive user key press and release events from the keyboard.
+ * 3. Component loses focus. Perhaps user chose another component to interact with.
+ */
+public interface KeyboardInputHandler {
+
+ /**
+ * @return true
if view needs to be re-rendered.
+ */
+ boolean focusLost(ViewPanel viewPanel);
+
+ /**
+ * @return true
if view needs to be re-rendered.
+ */
+ boolean focusReceived(ViewPanel viewPanel);
+
+ /**
+ * @return true
if view needs to be re-rendered.
+ */
+ boolean keyPressed(KeyEvent event, ViewPanel viewPanel);
+
+ /**
+ * @return true
if view needs to be re-rendered.
+ */
+ boolean keyReleased(KeyEvent event, ViewPanel viewPanel);
+
+}