Merge branch 'subtree'
[fanfix.git] / src / jexer / TPanel.java
index 1a8dab1d6ebb79b64bf491d121acc8bfb768638a..c38f8e1f50ee1d76b34821fc56f5959597784d84 100644 (file)
@@ -28,6 +28,8 @@
  */
 package jexer;
 
+import jexer.event.TResizeEvent;
+
 /**
  * TPanel is an empty container for other widgets.
  */
@@ -56,6 +58,35 @@ public class TPanel extends TWidget {
         super(parent, x, y, width, height);
     }
 
+    // ------------------------------------------------------------------------
+    // Event handlers ---------------------------------------------------------
+    // ------------------------------------------------------------------------
+
+    /**
+     * Method that subclasses can override to handle window/screen resize
+     * events.
+     *
+     * @param resize resize event
+     */
+    @Override
+    public void onResize(final TResizeEvent resize) {
+        if (resize.getType() == TResizeEvent.Type.WIDGET) {
+            if (getChildren().size() == 1) {
+                TWidget child = getChildren().get(0);
+                if ((child instanceof TSplitPane)
+                    || (child instanceof TPanel)
+                ) {
+                    child.onResize(new TResizeEvent(TResizeEvent.Type.WIDGET,
+                            resize.getWidth(), resize.getHeight()));
+                }
+                return;
+            }
+        }
+
+        // Pass on to TWidget.
+        super.onResize(resize);
+    }
+
     // ------------------------------------------------------------------------
     // TWidget ----------------------------------------------------------------
     // ------------------------------------------------------------------------