X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWidget.java;h=d6864db746316659ef5d3ed4fed3cc76b0934d6a;hb=a83fea2bae838f4b9bbf59ce3832e0e67be41378;hp=84277a8c2acc8dba6d46ff018ddbfbdc232404ce;hpb=cc99cba8bdfb594d4606949f1763898a420e7f34;p=fanfix.git diff --git a/src/jexer/TWidget.java b/src/jexer/TWidget.java index 84277a8..d6864db 100644 --- a/src/jexer/TWidget.java +++ b/src/jexer/TWidget.java @@ -547,6 +547,21 @@ public abstract class TWidget implements Comparable { this(parent, true); } + /** + * Protected constructor. + * + * @param parent parent widget + * @param x column relative to parent + * @param y row relative to parent + * @param width width of widget + * @param height height of widget + */ + protected TWidget(final TWidget parent, final int x, final int y, + final int width, final int height) { + + this(parent, true, x, y, width, height); + } + /** * Protected constructor used by subclasses that are disabled by default. * @@ -561,6 +576,31 @@ public abstract class TWidget implements Comparable { parent.addChild(this); } + /** + * Protected constructor used by subclasses that are disabled by default. + * + * @param parent parent widget + * @param enabled if true assume enabled + * @param x column relative to parent + * @param y row relative to parent + * @param width width of widget + * @param height height of widget + */ + protected TWidget(final TWidget parent, final boolean enabled, + final int x, final int y, final int width, final int height) { + + this.enabled = enabled; + this.parent = parent; + this.window = parent.window; + children = new LinkedList(); + parent.addChild(this); + + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + /** * Add a child widget to my list of children. We set its tabOrder to 0 * and increment the tabOrder of all other children. @@ -723,7 +763,7 @@ public abstract class TWidget implements Comparable { if ((children.size() == 0) // TODO // || (cast(TTreeView)this) - // || (cast(TText)this) + || (this instanceof TText) ) { // Defaults: @@ -1109,7 +1149,7 @@ public abstract class TWidget implements Comparable { * @param colorKey ColorTheme key color to use for foreground text * @return the new text box */ - public TText addText(final String text, final int x, + public final TText addText(final String text, final int x, final int y, final int width, final int height, final String colorKey) { return new TText(this, text, x, y, width, height, colorKey); @@ -1126,11 +1166,122 @@ public abstract class TWidget implements Comparable { * @param height height of text area * @return the new text box */ - public TText addText(final String text, final int x, final int y, + public final TText addText(final String text, final int x, final int y, final int width, final int height) { return new TText(this, text, x, y, width, height, "ttext"); } + /** + * Convenience function to spawn a message box. + * + * @param title window title, will be centered along the top border + * @param caption message to display. Use embedded newlines to get a + * multi-line box. + * @return the new message box + */ + public final TMessageBox messageBox(final String title, + final String caption) { + + return getApplication().messageBox(title, caption, TMessageBox.Type.OK); + } + + /** + * Convenience function to spawn a message box. + * + * @param title window title, will be centered along the top border + * @param caption message to display. Use embedded newlines to get a + * multi-line box. + * @param type one of the TMessageBox.Type constants. Default is + * Type.OK. + * @return the new message box + */ + public final TMessageBox messageBox(final String title, + final String caption, final TMessageBox.Type type) { + + return getApplication().messageBox(title, caption, type); + } + + /** + * Convenience function to spawn an input box. + * + * @param title window title, will be centered along the top border + * @param caption message to display. Use embedded newlines to get a + * multi-line box. + * @return the new input box + */ + public final TInputBox inputBox(final String title, final String caption) { + + return getApplication().inputBox(title, caption); + } + + /** + * Convenience function to spawn an input box. + * + * @param title window title, will be centered along the top border + * @param caption message to display. Use embedded newlines to get a + * multi-line box. + * @param text initial text to seed the field with + * @return the new input box + */ + public final TInputBox inputBox(final String title, final String caption, + final String text) { + + return getApplication().inputBox(title, caption, text); + } + + /** + * Convenience function to add a password text field to this + * container/window. + * + * @param x column relative to parent + * @param y row relative to parent + * @param width visible text width + * @param fixed if true, the text cannot exceed the display width + * @return the new text field + */ + public final TPasswordField addPasswordField(final int x, final int y, + final int width, final boolean fixed) { + + return new TPasswordField(this, x, y, width, fixed); + } + + /** + * Convenience function to add a password text field to this + * container/window. + * + * @param x column relative to parent + * @param y row relative to parent + * @param width visible text width + * @param fixed if true, the text cannot exceed the display width + * @param text initial text, default is empty string + * @return the new text field + */ + public final TPasswordField addPasswordField(final int x, final int y, + final int width, final boolean fixed, final String text) { + + return new TPasswordField(this, x, y, width, fixed, text); + } + + /** + * Convenience function to add a password text field to this + * container/window. + * + * @param x column relative to parent + * @param y row relative to parent + * @param width visible text width + * @param fixed if true, the text cannot exceed the display width + * @param text initial text, default is empty string + * @param enterAction function to call when enter key is pressed + * @param updateAction function to call when the text is updated + * @return the new text field + */ + public final TPasswordField addPasswordField(final int x, final int y, + final int width, final boolean fixed, final String text, + final TAction enterAction, final TAction updateAction) { + + return new TPasswordField(this, x, y, width, fixed, text, enterAction, + updateAction); + } }