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);
+ }
}
/**
this(parent, text, x, y);
this.action = action;
}
+
+ /**
+ * The action to call when the button is pressed.
+ **/
+ public TAction getAction() {
+ return action;
+ }
+
+ /**
+ * The action to call when the button is pressed.
+ **/
+ public void setAction(TAction action) {
+ this.action = action;
+ }
// ------------------------------------------------------------------------
// Event handlers ---------------------------------------------------------
// 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.
*/
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);
}
}
*/
public void dispatch() {
if (action != null) {
- action.DO();
+ action.DO(this);
inButtonPress = false;
}
}