#16 Refactor Swing backend, demo of multiple TApplications in one Swing frame
[fanfix.git] / src / jexer / backend / TerminalReader.java
similarity index 63%
rename from src/jexer/session/package-info.java
rename to src/jexer/backend/TerminalReader.java
index 0b6ccf0fa22fec8d4e00ed5754db718579b0e6e5..48e4043f92b34bab0b208bd3e6453e26d5024360 100644 (file)
  * @author Kevin Lamonte [kevin.lamonte@gmail.com]
  * @version 1
  */
+package jexer.backend;
+
+import java.util.List;
+
+import jexer.event.TInputEvent;
 
 /**
- * Text terminal session values: width, height, username, language, etc.
+ * TerminalReader provides keyboard and mouse events.
  */
-package jexer.session;
+public interface TerminalReader {
+
+    /**
+     * Check if there are events in the queue.
+     *
+     * @return if true, getEvents() has something to return to the backend
+     */
+    public boolean hasEvents();
+
+    /**
+     * Classes must provide an implementation to get keyboard, mouse, and
+     * screen resize events.
+     *
+     * @param queue list to append new events to
+     */
+    public void getEvents(List<TInputEvent> queue);
+
+    /**
+     * Classes must provide an implementation that closes sockets, restores
+     * console, etc.
+     */
+    public void closeTerminal();
+
+}