#18 move to event-driven main loop
[nikiroo-utils.git] / src / jexer / backend / MultiScreen.java
index f7b61ddfc276b12befba88eca7c4aa88454c24bf..735faace1a130576b28e6fd8d8f667a9acc36510 100644 (file)
@@ -182,7 +182,12 @@ public class MultiScreen implements Screen {
      * screen
      */
     public boolean isDirty() {
-        return screens.get(0).isDirty();
+        for (Screen screen: screens) {
+            if (screen.isDirty()) {
+                return true;
+            }
+        }
+        return false;
     }
 
     /**
@@ -196,6 +201,17 @@ public class MultiScreen implements Screen {
         return screens.get(0).getAttrXY(x, y);
     }
 
+    /**
+     * Get the cell at one location.
+     *
+     * @param x column coordinate.  0 is the left-most column.
+     * @param y row coordinate.  0 is the top-most row.
+     * @return the character + attributes
+     */
+    public Cell getCharXY(final int x, final int y) {
+        return screens.get(0).getCharXY(x, y);
+    }
+
     /**
      * Set the attributes at one location.
      *
@@ -520,6 +536,33 @@ public class MultiScreen implements Screen {
         }
     }
 
+    /**
+     * Get the cursor visibility.
+     *
+     * @return true if the cursor is visible
+     */
+    public boolean isCursorVisible() {
+        return screens.get(0).isCursorVisible();
+    }
+
+    /**
+     * Get the cursor X position.
+     *
+     * @return the cursor x column position
+     */
+    public int getCursorX() {
+        return screens.get(0).getCursorX();
+    }
+
+    /**
+     * Get the cursor Y position.
+     *
+     * @return the cursor y row position
+     */
+    public int getCursorY() {
+        return screens.get(0).getCursorY();
+    }
+
     /**
      * Set the window title.
      *