hide label and button mnemonics on Mac (#4)

This commit is contained in:
Karl Tauber
2019-10-04 19:26:09 +02:00
parent 7ef598ded6
commit 43429ddc39
5 changed files with 18 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ FlatLaf Change Log
- Use new chevron arrows in "Flat Light" and "Flat Dark" themes, but keep
triangle arrows in "Flat IntelliJ" and "Flat Darcula" themes. (issue #7)
- Hide label and button mnemonics on Mac. (issue #4)
- If a JButton has an icon and no text, then it does not get a minimum width
(usually 72 pixel) and the left and right insets are same as top/bottom insets
so that it becomes square (if the icon is square).

View File

@@ -429,4 +429,8 @@ public abstract class FlatLaf
return strs;
}
public static boolean isShowMnemonics() {
return !SystemInfo.IS_MAC;
}
}

View File

@@ -36,6 +36,7 @@ import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicButtonUI;
import com.formdev.flatlaf.FlatLaf;
/**
* Provides the Flat LaF UI delegate for {@link javax.swing.JButton}.
@@ -203,7 +204,7 @@ public class FlatButtonUI
static void paintText( Graphics g, AbstractButton b, Rectangle textRect, String text, Color foreground ) {
FontMetrics fm = b.getFontMetrics( b.getFont() );
int mnemonicIndex = b.getDisplayedMnemonicIndex();
int mnemonicIndex = FlatLaf.isShowMnemonics() ? b.getDisplayedMnemonicIndex() : -1;
g.setColor( foreground );
FlatUIUtils.drawStringUnderlineCharAt( b, g, text, mnemonicIndex,

View File

@@ -27,6 +27,7 @@ import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicLabelUI;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.util.UIScale;
/**
@@ -71,9 +72,16 @@ public class FlatLabelUI
defaults_initialized = false;
}
@Override
protected void paintEnabledText( JLabel l, Graphics g, String s, int textX, int textY ) {
int mnemIndex = FlatLaf.isShowMnemonics() ? l.getDisplayedMnemonicIndex() : -1;
g.setColor( l.getForeground() );
FlatUIUtils.drawStringUnderlineCharAt( l, g, s, mnemIndex, textX, textY );
}
@Override
protected void paintDisabledText( JLabel l, Graphics g, String s, int textX, int textY ) {
int mnemIndex = l.getDisplayedMnemonicIndex();
int mnemIndex = FlatLaf.isShowMnemonics() ? l.getDisplayedMnemonicIndex() : -1;
g.setColor( disabledForeground );
FlatUIUtils.drawStringUnderlineCharAt( l, g, s, mnemIndex, textX, textY );
}

View File

@@ -33,6 +33,7 @@ import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.UIResource;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
import javax.swing.text.View;
import com.formdev.flatlaf.FlatLaf;
/**
* Provides the Flat LaF UI delegate for {@link javax.swing.JTabbedPane}.
@@ -263,7 +264,7 @@ public class FlatTabbedPaneUI
} else
color = disabledForeground;
int mnemIndex = tabPane.getDisplayedMnemonicIndexAt( tabIndex );
int mnemIndex = FlatLaf.isShowMnemonics() ? tabPane.getDisplayedMnemonicIndexAt( tabIndex ) : -1;
g.setColor( color );
FlatUIUtils.drawStringUnderlineCharAt( tabPane, g, title, mnemIndex,