Styling: MenuItem: support styling acceleratorFont

Theme Editor:
- support font keys in auto-completion
- ignore Menu.acceleratorFont, CheckBoxMenuItem.acceleratorFont and RadioButtonMenuItem.acceleratorFont because they are never used (keep UI values for backward compatibility)
This commit is contained in:
Karl Tauber
2021-12-11 11:17:53 +01:00
parent 6205e18c45
commit 2164bd363b
6 changed files with 16 additions and 15 deletions

View File

@@ -78,7 +78,7 @@ public class FlatMenuItemRenderer
protected final JMenuItem menuItem;
protected Icon checkIcon;
protected Icon arrowIcon;
protected final Font acceleratorFont;
@Styleable protected Font acceleratorFont;
protected final String acceleratorDelimiter;
/** @since 2 */ @Styleable protected boolean verticallyAlignText = FlatUIUtils.getUIBoolean( "MenuItem.verticallyAlignText", true );

View File

@@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import static com.formdev.flatlaf.ui.TestUtils.assertMapEquals;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -335,7 +336,8 @@ public class TestFlatStyleableInfo
"selectionForeground", Color.class,
"disabledForeground", Color.class,
"acceleratorForeground", Color.class,
"acceleratorSelectionForeground", Color.class
"acceleratorSelectionForeground", Color.class,
"acceleratorFont", Font.class
);
menuItemRenderer( expected );

View File

@@ -483,6 +483,7 @@ public class TestFlatStyling
applyStyle.accept( "disabledForeground: #fff" );
applyStyle.accept( "acceleratorForeground: #fff" );
applyStyle.accept( "acceleratorSelectionForeground: #fff" );
applyStyle.accept( "acceleratorFont: italic 12 monospaced" );
menuItemRenderer( applyStyle );
@@ -770,6 +771,8 @@ public class TestFlatStyling
ui.applyStyle( "foreground: #fff" );
ui.applyStyle( "border: 2,2,2,2,#f00" );
ui.applyStyle( "font: italic 12 monospaced" );
// JSlider properties
ui.applyStyle( "minimum: 0" );
ui.applyStyle( "maximum: 50" );
ui.applyStyle( "value: 20" );
@@ -781,12 +784,6 @@ public class TestFlatStyling
ui.applyStyle( "paintTicks: true" );
ui.applyStyle( "paintTrack: true" );
ui.applyStyle( "snapToTicks: true" );
// JSlider properties
ui.applyStyle( "paintLabels: true" );
ui.applyStyle( "paintTicks: true" );
ui.applyStyle( "paintTrack: true" );
ui.applyStyle( "snapToTicks: true" );
}
@Test

View File

@@ -87,8 +87,15 @@ public class UIDefaultsKeysDump
UIDefaults defaults = UIManager.getLookAndFeel().getDefaults();
for( Object key : defaults.keySet() ) {
if( key instanceof String && !((String)key).startsWith( "FlatLaf.internal." ) )
if( key instanceof String && !ignoreKey( (String) key ) )
keys.add( (String) key );
}
}
private static boolean ignoreKey( String key ) {
return key.startsWith( "FlatLaf.internal." ) ||
key.equals( "Menu.acceleratorFont" ) ||
key.equals( "CheckBoxMenuItem.acceleratorFont" ) ||
key.equals( "RadioButtonMenuItem.acceleratorFont" );
}
}

View File

@@ -193,9 +193,7 @@ class FlatCompletionProvider
}
private boolean isIgnored( String key ) {
return key.endsWith( ".font" ) ||
key.endsWith( "Font" ) ||
key.endsWith( "InputMap" );
return key.endsWith( "InputMap" );
}
private void setCompletions( Set<String> keys ) {

View File

@@ -139,7 +139,6 @@ CheckBox.margin
CheckBox.rollover
CheckBox.textIconGap
CheckBox.textShiftOffset
CheckBoxMenuItem.acceleratorFont
CheckBoxMenuItem.acceleratorForeground
CheckBoxMenuItem.acceleratorSelectionForeground
CheckBoxMenuItem.arrowIcon
@@ -430,7 +429,6 @@ List.selectionInactiveForeground
List.showCellFocusIndicator
List.timeFactor
ListUI
Menu.acceleratorFont
Menu.acceleratorForeground
Menu.acceleratorSelectionForeground
Menu.arrowIcon
@@ -614,7 +612,6 @@ RadioButton.rollover
RadioButton.shadow
RadioButton.textIconGap
RadioButton.textShiftOffset
RadioButtonMenuItem.acceleratorFont
RadioButtonMenuItem.acceleratorForeground
RadioButtonMenuItem.acceleratorSelectionForeground
RadioButtonMenuItem.arrowIcon