#52 report foreground/background colors
[fanfix.git] / src / jexer / TLabel.java
index f33a8d75f51ac7f6045f3dbc6b8d97934157af2d..f34a533eb8ffb44c1d2aa9ebefc2a2e925a89a66 100644 (file)
@@ -30,6 +30,7 @@ package jexer;
 
 import jexer.bits.CellAttributes;
 import jexer.bits.MnemonicString;
+import jexer.bits.StringUtils;
 
 /**
  * TLabel implements a simple label, with an optional mnemonic hotkey action
@@ -157,7 +158,7 @@ public class TLabel extends TWidget {
         final TAction action) {
 
         // Set parent and window
-        super(parent, false, x, y, text.length(), 1);
+        super(parent, false, x, y, StringUtils.width(text), 1);
 
         mnemonic = new MnemonicString(text);
         this.colorKey = colorKey;
@@ -169,6 +170,17 @@ public class TLabel extends TWidget {
     // TWidget ----------------------------------------------------------------
     // ------------------------------------------------------------------------
 
+    /**
+     * 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 static label.
      */
@@ -185,8 +197,8 @@ public class TLabel extends TWidget {
             mnemonicColor.setBackColor(background.getBackColor());
         }
         putStringXY(0, 0, mnemonic.getRawLabel(), color);
-        if (mnemonic.getShortcutIdx() >= 0) {
-            putCharXY(mnemonic.getShortcutIdx(), 0,
+        if (mnemonic.getScreenShortcutIdx() >= 0) {
+            putCharXY(mnemonic.getScreenShortcutIdx(), 0,
                 mnemonic.getShortcut(), mnemonicColor);
         }
     }
@@ -222,12 +234,30 @@ public class TLabel extends TWidget {
         mnemonic = new MnemonicString(label);
     }
 
+    /**
+     * Get the label color.
+     *
+     * @return the ColorTheme key color to use for foreground text
+     */
+    public String getColorKey() {
+        return colorKey;
+    }
+
+    /**
+     * Set the label color.
+     *
+     * @param colorKey ColorTheme key color to use for foreground text
+     */
+    public void setColorKey(final String colorKey) {
+        this.colorKey = colorKey;
+    }
+
     /**
      * Act as though the mnemonic shortcut was pressed.
      */
     public void dispatch() {
         if (action != null) {
-            action.DO();
+            action.DO(this);
         }
     }