#35 cjk without sixel
[fanfix.git] / src / jexer / TButton.java
index 964035fc5a0ee47241aed898cb59c63c5354746d..82a638922df56ed7ad6086fcfd5ba4aff385e28f 100644 (file)
@@ -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".
-     * <p>
-     * 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;
+        }
     }
 
 }