Merge branch 'subtree'
[fanfix.git] / src / jexer / TLabel.java
index 1d65976bba16f3947a3c47498cf552dcdda4f849..cc341cfa862964ed9097c425ea4d10b55627ac0c 100644 (file)
@@ -158,9 +158,9 @@ public class TLabel extends TWidget {
         final TAction action) {
 
         // Set parent and window
-        super(parent, false, x, y, StringUtils.width(text), 1);
+        super(parent, false, x, y, 0, 1);
 
-        mnemonic = new MnemonicString(text);
+        setLabel(text);
         this.colorKey = colorKey;
         this.useWindowBackground = useWindowBackground;
         this.action = action;
@@ -170,6 +170,27 @@ public class TLabel 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 static label.
      */
@@ -186,8 +207,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);
         }
     }
@@ -221,6 +242,7 @@ public class TLabel extends TWidget {
      */
     public void setLabel(final String label) {
         mnemonic = new MnemonicString(label);
+        super.setWidth(StringUtils.width(mnemonic.getRawLabel()));
     }
 
     /**
@@ -246,7 +268,7 @@ public class TLabel extends TWidget {
      */
     public void dispatch() {
         if (action != null) {
-            action.DO();
+            action.DO(this);
         }
     }