X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWidget.java;h=84277a8c2acc8dba6d46ff018ddbfbdc232404ce;hb=cc99cba8bdfb594d4606949f1763898a420e7f34;hp=2ca7108146c0090809d543b91233da31adda130b;hpb=2b9c27db318b916730aa04f2b41bd3bff795a5dc;p=nikiroo-utils.git diff --git a/src/jexer/TWidget.java b/src/jexer/TWidget.java index 2ca7108..84277a8 100644 --- a/src/jexer/TWidget.java +++ b/src/jexer/TWidget.java @@ -312,6 +312,15 @@ public abstract class TWidget implements Comparable { */ private boolean hasCursor = false; + /** + * Set visible cursor flag. + * + * @param hasCursor if true, this widget has a cursor + */ + public final void setHasCursor(final boolean hasCursor) { + this.hasCursor = hasCursor; + } + /** * See if this widget has a visible cursor. * @@ -326,11 +335,47 @@ public abstract class TWidget implements Comparable { */ private int cursorX = 0; + /** + * Get cursor X value. + * + * @return cursor column position in relative coordinates + */ + public final int getCursorX() { + return cursorX; + } + + /** + * Set cursor X value. + * + * @param cursorX column position in relative coordinates + */ + public final void setCursorX(final int cursorX) { + this.cursorX = cursorX; + } + /** * Cursor row position in relative coordinates. */ private int cursorY = 0; + /** + * Get cursor Y value. + * + * @return cursor row position in relative coordinates + */ + public final int getCursorY() { + return cursorY; + } + + /** + * Set cursor Y value. + * + * @param cursorY row position in relative coordinates + */ + public final void setCursorY(final int cursorY) { + this.cursorY = cursorY; + } + /** * Comparison operator sorts on tabOrder for TWidgets and z for TWindows. * @@ -341,7 +386,7 @@ public abstract class TWidget implements Comparable { @Override public final int compareTo(final TWidget that) { if ((this instanceof TWindow) - && (that instanceof TWindow) + && (that instanceof TWindow) ) { return (((TWindow) this).getZ() - ((TWindow) that).getZ()); } @@ -956,5 +1001,136 @@ public abstract class TWidget implements Comparable { return new TButton(this, text, x, y, action); } + /** + * Convenience function to add a checkbox to this container/window. + * + * @param x column relative to parent + * @param y row relative to parent + * @param label label to display next to (right of) the checkbox + * @param checked initial check state + * @return the new checkbox + */ + public final TCheckbox addCheckbox(final int x, final int y, + final String label, final boolean checked) { + + return new TCheckbox(this, x, y, label, checked); + } + + /** + * Convenience function to add a progress bar to this container/window. + * + * @param x column relative to parent + * @param y row relative to parent + * @param width width of progress bar + * @param value initial value of percent complete + * @return the new progress bar + */ + public final TProgressBar addProgressBar(final int x, final int y, + final int width, final int value) { + + return new TProgressBar(this, x, y, width, value); + } + + /** + * Convenience function to add a radio button group to this + * container/window. + * + * @param x column relative to parent + * @param y row relative to parent + * @param label label to display on the group box + * @return the new radio button group + */ + public final TRadioGroup addRadioGroup(final int x, final int y, + final String label) { + + return new TRadioGroup(this, x, y, label); + } + + /** + * Convenience function to add a 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 TField addField(final int x, final int y, + final int width, final boolean fixed) { + + return new TField(this, x, y, width, fixed); + } + + /** + * Convenience function to add a 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 TField addField(final int x, final int y, + final int width, final boolean fixed, final String text) { + + return new TField(this, x, y, width, fixed, text); + } + + /** + * Convenience function to add a 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 TField addField(final int x, final int y, + final int width, final boolean fixed, final String text, + final TAction enterAction, final TAction updateAction) { + + return new TField(this, x, y, width, fixed, text, enterAction, + updateAction); + } + + /** + * Convenience function to add a scrollable text 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 + * @param colorKey ColorTheme key color to use for foreground text + * @return the new text box + */ + public 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); + } + + /** + * Convenience function to add a scrollable text 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 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"); + } + }