X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTButton.java;h=82a638922df56ed7ad6086fcfd5ba4aff385e28f;hb=6cdd4553f20b84586df10e5f8319b6462bf3bd41;hp=964035fc5a0ee47241aed898cb59c63c5354746d;hpb=255967a89dac82295953090d65f58cf224fbbed6;p=fanfix.git diff --git a/src/jexer/TButton.java b/src/jexer/TButton.java index 964035f..82a6389 100644 --- a/src/jexer/TButton.java +++ b/src/jexer/TButton.java @@ -32,9 +32,11 @@ import jexer.bits.CellAttributes; import jexer.bits.Color; import jexer.bits.GraphicsChars; import jexer.bits.MnemonicString; +import jexer.bits.StringUtils; import jexer.event.TKeypressEvent; import jexer.event.TMouseEvent; -import static jexer.TKeypress.*; +import static jexer.TKeypress.kbEnter; +import static jexer.TKeypress.kbSpace; /** * TButton implements a simple button. To make the button do something, pass @@ -69,10 +71,11 @@ public class TButton extends TWidget { private TAction action; /** - * The background color used for the button "shadow", or NULL for "no shadow". + * The background color used for the button "shadow", or null for "no + * shadow". */ private CellAttributes shadowColor; - + // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- // ------------------------------------------------------------------------ @@ -96,7 +99,7 @@ public class TButton extends TWidget { setX(x); setY(y); setHeight(2); - setWidth(mnemonic.getRawLabel().length() + 3); + setWidth(StringUtils.width(mnemonic.getRawLabel()) + 3); shadowColor = new CellAttributes(); shadowColor.setTo(getWindow().getBackground()); @@ -232,27 +235,27 @@ public class TButton extends TWidget { } if (inButtonPress) { - putCharXY(1, 0, ' ', buttonColor); - putStringXY(2, 0, mnemonic.getRawLabel(), buttonColor); + putCharXY(1, 0, ' ', buttonColor); + putStringXY(2, 0, mnemonic.getRawLabel(), buttonColor); putCharXY(getWidth() - 1, 0, ' ', buttonColor); } else { putCharXY(0, 0, ' ', buttonColor); putStringXY(1, 0, mnemonic.getRawLabel(), buttonColor); putCharXY(getWidth() - 2, 0, ' ', buttonColor); - + if (shadowColor != null) { - putCharXY(getWidth() - 1, 0, - GraphicsChars.CP437[0xDC], shadowColor); - hLineXY(1, 1, getWidth() - 1, - GraphicsChars.CP437[0xDF], shadowColor); + putCharXY(getWidth() - 1, 0, + GraphicsChars.CP437[0xDC], shadowColor); + hLineXY(1, 1, getWidth() - 1, + 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); } } @@ -283,21 +286,20 @@ public class TButton extends TWidget { } /** - * Set the background color used for the button "shadow". - *

- * Can be NULL for "no shadow". + * Set the background color used for the button "shadow". If null, no + * shadow will be drawn. * - * @param color the new background color, or NULL if none + * @param color the new background color, or null for no shadow */ public void setShadowColor(final CellAttributes color) { - if (color != null) { - shadowColor = new CellAttributes(); - shadowColor.setTo(color); - shadowColor.setForeColor(Color.BLACK); - shadowColor.setBold(false); - } else { - shadowColor = null; - } + if (color != null) { + shadowColor = new CellAttributes(); + shadowColor.setTo(color); + shadowColor.setForeColor(Color.BLACK); + shadowColor.setBold(false); + } else { + shadowColor = null; + } } }