import java.util.List;
import java.util.ArrayList;
+import jexer.backend.Screen;
import jexer.bits.ColorTheme;
import jexer.event.TCommandEvent;
import jexer.event.TInputEvent;
import jexer.event.TMenuEvent;
import jexer.event.TMouseEvent;
import jexer.event.TResizeEvent;
-import jexer.io.Screen;
import jexer.menu.TMenu;
import static jexer.TKeypress.*;
this.height = height;
}
+ /**
+ * Change the dimensions.
+ *
+ * @param x absolute X position of the top-left corner
+ * @param y absolute Y position of the top-left corner
+ * @param width new widget width
+ * @param height new widget height
+ */
+ public final void setDimensions(final int x, final int y, final int width,
+ final int height) {
+
+ setX(x);
+ setY(y);
+ setWidth(width);
+ setHeight(height);
+ }
+
/**
* My tab order inside a window or containing widget.
*/
if (parent == this) {
return x;
}
- if ((parent instanceof TWindow) && !(parent instanceof TMenu)) {
+ if ((parent instanceof TWindow)
+ && !(parent instanceof TMenu)
+ && !(parent instanceof TDesktop)
+ ) {
// Widgets on a TWindow have (0,0) as their top-left, but this is
// actually the TWindow's (1,1).
return parent.getAbsoluteX() + x + 1;
if (parent == this) {
return y;
}
- if ((parent instanceof TWindow) && !(parent instanceof TMenu)) {
+ if ((parent instanceof TWindow)
+ && !(parent instanceof TMenu)
+ && !(parent instanceof TDesktop)
+ ) {
// Widgets on a TWindow have (0,0) as their top-left, but this is
// actually the TWindow's (1,1).
return parent.getAbsoluteY() + y + 1;
* @param resize resize event
*/
public void onResize(final TResizeEvent resize) {
- // Default: do nothing, pass to children instead
- for (TWidget widget: children) {
- widget.onResize(resize);
+ // Default: change my width/height.
+ if (resize.getType() == TResizeEvent.Type.WIDGET) {
+ width = resize.getWidth();
+ height = resize.getHeight();
+ } else {
+ // Let children see the screen resize
+ for (TWidget widget: children) {
+ widget.onResize(resize);
+ }
}
}
return new TText(this, text, x, y, width, height, "ttext");
}
+ /**
+ * Convenience function to add an editable text area box to this
+ * container/window.
+ *
+ * @param text text on the screen
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of text area
+ * @param height height of text area
+ * @return the new text box
+ */
+ public final TEditorWidget addEditor(final String text, final int x,
+ final int y, final int width, final int height) {
+
+ return new TEditorWidget(this, text, x, y, width, height);
+ }
+
/**
* Convenience function to spawn a message box.
*