X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWidget.java;h=1ab54e29b484e4220a79a06624290aa300968701;hb=d502a0e90eacad7ec676b0abf4686db553b794b1;hp=17f7849631f5bd087f536cf48f4068bf211447b7;hpb=30d336cc33e26af877f7950b93f3b77d9c3a3bd3;p=fanfix.git diff --git a/src/jexer/TWidget.java b/src/jexer/TWidget.java index 17f7849..1ab54e2 100644 --- a/src/jexer/TWidget.java +++ b/src/jexer/TWidget.java @@ -48,7 +48,7 @@ import static jexer.TKeypress.*; * TWidget is the base class of all objects that can be drawn on screen or * handle user input events. */ -public abstract class TWidget { +public abstract class TWidget implements Comparable { /** * Every widget has a parent widget that it may be "contained" in. For @@ -312,6 +312,15 @@ public abstract class TWidget { */ 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,18 +335,61 @@ public abstract class TWidget { */ 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; /** - * Comparison operator sorts on tabOrder. + * Get cursor Y value. + * + * @return cursor row position in relative coordinates + */ + public final int getCursorY() { + return cursorY; + } + + /** + * Set cursor Y value. * - * @param that another TWidget instance - * @return difference between this.tabOrder and that.tabOrder + * @param cursorY row position in relative coordinates */ - public final int compare(final TWidget that) { + public final void setCursorY(final int cursorY) { + this.cursorY = cursorY; + } + + /** + * Comparison operator sorts on tabOrder for TWidgets and z for TWindows. + * + * @param that another TWidget or TWindow instance + * @return difference between this.tabOrder and that.tabOrder, or + * difference between this.z and that.z + */ + @Override + public final int compareTo(final TWidget that) { + if ((this instanceof TWindow) + && (that instanceof TWindow) + ) { + return (((TWindow) this).getZ() - ((TWindow) that).getZ()); + } return (this.tabOrder - that.tabOrder); } @@ -949,5 +1001,33 @@ public abstract class TWidget { 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 + */ + public final TProgressBar addProgressBar(final int x, final int y, + final int width, final int value) { + + return new TProgressBar(this, x, y, width, value); + } }