X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTButton.java;h=d86fa4400d16b51dc3be15dbaa38f5421ffdc7b5;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=534c12a441b9db40ce07f760e947b7c5e6cf796c;hpb=3af53a35f41caa36050a69d39a8ec40be92e7aca;p=nikiroo-utils.git diff --git a/src/jexer/TButton.java b/src/jexer/TButton.java index 534c12a..d86fa44 100644 --- a/src/jexer/TButton.java +++ b/src/jexer/TButton.java @@ -98,13 +98,20 @@ public class TButton extends TWidget { setX(x); setY(y); - setHeight(2); - setWidth(StringUtils.width(mnemonic.getRawLabel()) + 3); + super.setHeight(2); + super.setWidth(StringUtils.width(mnemonic.getRawLabel()) + 3); shadowColor = new CellAttributes(); shadowColor.setTo(getWindow().getBackground()); shadowColor.setForeColor(Color.BLACK); shadowColor.setBold(false); + + // Since we set dimensions after TWidget's constructor, we need to + // update the layout manager. + if (getParent().getLayoutManager() != null) { + getParent().getLayoutManager().remove(this); + getParent().getLayoutManager().add(this); + } } /** @@ -215,6 +222,27 @@ public class TButton extends TWidget { // TWidget ---------------------------------------------------------------- // ------------------------------------------------------------------------ + /** + * Override TWidget's width: we can only set width at construction time. + * + * @param width new widget width (ignored) + */ + @Override + public void setWidth(final int width) { + // Do nothing + } + + /** + * Override TWidget's height: we can only set height at construction + * time. + * + * @param height new widget height (ignored) + */ + @Override + public void setHeight(final int height) { + // Do nothing + } + /** * Draw a button with a shadow. */ @@ -250,12 +278,12 @@ public class TButton extends TWidget { GraphicsChars.CP437[0xDF], shadowColor); } } - if (mnemonic.getShortcutIdx() >= 0) { + if (mnemonic.getScreenShortcutIdx() >= 0) { if (inButtonPress) { - putCharXY(2 + mnemonic.getShortcutIdx(), 0, + putCharXY(2 + mnemonic.getScreenShortcutIdx(), 0, mnemonic.getShortcut(), menuMnemonicColor); } else { - putCharXY(1 + mnemonic.getShortcutIdx(), 0, + putCharXY(1 + mnemonic.getScreenShortcutIdx(), 0, mnemonic.getShortcut(), menuMnemonicColor); } } @@ -280,7 +308,7 @@ public class TButton extends TWidget { */ public void dispatch() { if (action != null) { - action.DO(); + action.DO(this); inButtonPress = false; } }