From 1d39d34d7c1086a808f5c33509a1dc0cc882a4a6 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 31 Oct 2021 17:30:43 +0100 Subject: [PATCH] CheckBox and RadioButton: - added `CheckBox.icon.hoverCheckmarkColor` - added `CheckBox.icon.selectedHoverBorderColor` - added `CheckBox.icon.pressedBorderColor` - added `CheckBox.icon.selectedPressedBorderColor` - added `CheckBox.icon.pressedCheckmarkColor` - renamed `CheckBox.icon.selectedFocusedBorderColor` to `CheckBox.icon.focusedSelectedBorderColor` - renamed `CheckBox.icon.selectedFocusedBackground` to `CheckBox.icon.focusedSelectedBackground` - renamed `CheckBox.icon.selectedFocusedCheckmarkColor` to `CheckBox.icon.focusedCheckmarkColor` - renamed `CheckBox.icon.selectedHoverBackground` to `CheckBox.icon.hoverSelectedBackground` - renamed `CheckBox.icon.selectedPressedBackground` to `CheckBox.icon.pressedSelectedBackground` - renamed `CheckBox.icon[filled].selectedFocusedBorderColor` to `CheckBox.icon[filled].focusedSelectedBorderColor` - renamed `CheckBox.icon[filled].selectedFocusedBackground` to `CheckBox.icon[filled].focusedSelectedBackground` - renamed `CheckBox.icon[filled].selectedFocusedCheckmarkColor` to `CheckBox.icon[filled].focusedCheckmarkColor` - renamed `CheckBox.icon[filled].selectedHoverBackground` to `CheckBox.icon[filled].hoverSelectedBackground` - renamed `CheckBox.icon[filled].selectedPressedBackground` to `CheckBox.icon[filled].pressedSelectedBackground` (Note: this are incompatible changes!) --- CHANGELOG.md | 7 +- .../com/formdev/flatlaf/IntelliJTheme.java | 8 +-- .../flatlaf/icons/FlatCheckBoxIcon.java | 65 ++++++++++++------- .../formdev/flatlaf/FlatDarkLaf.properties | 4 +- .../formdev/flatlaf/FlatLightLaf.properties | 10 +-- .../flatlaf/ui/TestFlatStyleableInfo.java | 30 ++++++--- .../formdev/flatlaf/ui/TestFlatStyling.java | 30 ++++++--- .../resources/DerivedColorKeys.properties | 12 ++-- .../dumps/uidefaults/FlatDarkLaf_1.8.0.txt | 4 +- .../dumps/uidefaults/FlatLightLaf_1.8.0.txt | 10 +-- .../dumps/uidefaults/FlatTestLaf_1.8.0.txt | 11 +++- .../flatlaf/testing/FlatTestLaf.properties | 11 +++- .../flatlaf/themeeditor/FlatLafUIKeys.txt | 30 ++++++--- 13 files changed, 147 insertions(+), 85 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 519bfd2f..eef6d099 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,8 +34,11 @@ FlatLaf Change Log - if moving focus into the toolbar, focus recently focused toolbar button - ComboBox, Spinner, TextField and subclasses: Support specifying width of border (see UI value `Component.borderWidth`). -- CheckBox and RadioButton: Support specifying width of icon border (see UI - value `CheckBox.icon.borderWidth`). +- CheckBox and RadioButton: + - Support specifying width of icon border (see UI value + `CheckBox.icon.borderWidth`). + - Reworked icon UI defaults and added missing ones. **Note**: There are minor + incompatible changes in FlatLaf properties files. - Slider: Support specifying width of thumb border (see UI value `Slider.thumbBorderWidth`). - Added more color functions to class `ColorFunctions` for easy use in diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java index ce600309..277831b3 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java @@ -504,7 +504,7 @@ public class IntelliJTheme // for filled checkbox/radiobutton used in light themes defaults.remove( "CheckBox.icon[filled].focusWidth" ); defaults.put( "CheckBox.icon[filled].hoverBorderColor", defaults.get( "CheckBox.icon[filled].focusedBorderColor" ) ); - defaults.put( "CheckBox.icon[filled].selectedFocusedBackground", defaults.get( "CheckBox.icon[filled].selectedBackground" ) ); + defaults.put( "CheckBox.icon[filled].focusedSelectedBackground", defaults.get( "CheckBox.icon[filled].selectedBackground" ) ); if( dark ) { // IDEA Darcula checkBoxFocused.svg, checkBoxSelectedFocused.svg, @@ -513,9 +513,9 @@ public class IntelliJTheme // --> add alpha to focused border colors String[] focusedBorderColorKeys = new String[] { "CheckBox.icon.focusedBorderColor", - "CheckBox.icon.selectedFocusedBorderColor", + "CheckBox.icon.focusedSelectedBorderColor", "CheckBox.icon[filled].focusedBorderColor", - "CheckBox.icon[filled].selectedFocusedBorderColor", + "CheckBox.icon[filled].focusedSelectedBorderColor", }; for( String key : focusedBorderColorKeys ) { Color color = defaults.getColor( key ); @@ -624,7 +624,7 @@ public class IntelliJTheme checkboxKeyMapping.put( "Checkbox.Background.Selected", "CheckBox.icon.selectedBackground" ); checkboxKeyMapping.put( "Checkbox.Border.Selected", "CheckBox.icon.selectedBorderColor" ); checkboxKeyMapping.put( "Checkbox.Foreground.Selected", "CheckBox.icon.checkmarkColor" ); - checkboxKeyMapping.put( "Checkbox.Focus.Thin.Selected", "CheckBox.icon.selectedFocusedBorderColor" ); + checkboxKeyMapping.put( "Checkbox.Focus.Thin.Selected", "CheckBox.icon.focusedSelectedBorderColor" ); checkboxDuplicateColors.put( "Checkbox.Background.Default.Dark", "Checkbox.Background.Selected.Dark" ); checkboxDuplicateColors.put( "Checkbox.Border.Default.Dark", "Checkbox.Border.Selected.Dark" ); diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCheckBoxIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCheckBoxIcon.java index 7c467a53..ae73dda6 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCheckBoxIcon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCheckBoxIcon.java @@ -46,6 +46,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils; * @uiDefault Component.focusColor Color * @uiDefault CheckBox.icon.focusWidth int optional; defaults to Component.focusWidth * @uiDefault CheckBox.icon.borderWidth int or float optional; defaults to Component.borderWidth + * @uiDefault CheckBox.arc int * * @uiDefault CheckBox.icon.focusColor Color optional; defaults to Component.focusColor * @uiDefault CheckBox.icon.borderColor Color @@ -53,20 +54,28 @@ import com.formdev.flatlaf.ui.FlatUIUtils; * @uiDefault CheckBox.icon.selectedBorderColor Color * @uiDefault CheckBox.icon.selectedBackground Color * @uiDefault CheckBox.icon.checkmarkColor Color + * * @uiDefault CheckBox.icon.disabledBorderColor Color * @uiDefault CheckBox.icon.disabledBackground Color * @uiDefault CheckBox.icon.disabledCheckmarkColor Color + * * @uiDefault CheckBox.icon.focusedBorderColor Color optional * @uiDefault CheckBox.icon.focusedBackground Color optional - * @uiDefault CheckBox.icon.selectedFocusedBorderColor Color optional; CheckBox.icon.focusedBorderColor is used if not specified - * @uiDefault CheckBox.icon.selectedFocusedBackground Color optional; CheckBox.icon.focusedBackground is used if not specified - * @uiDefault CheckBox.icon.selectedFocusedCheckmarkColor Color optional; CheckBox.icon.checkmarkColor is used if not specified + * @uiDefault CheckBox.icon.focusedSelectedBorderColor Color optional; CheckBox.icon.focusedBorderColor is used if not specified + * @uiDefault CheckBox.icon.focusedSelectedBackground Color optional; CheckBox.icon.focusedBackground is used if not specified + * @uiDefault CheckBox.icon.focusedCheckmarkColor Color optional; CheckBox.icon.checkmarkColor is used if not specified + * * @uiDefault CheckBox.icon.hoverBorderColor Color optional * @uiDefault CheckBox.icon.hoverBackground Color optional - * @uiDefault CheckBox.icon.selectedHoverBackground Color optional; CheckBox.icon.hoverBackground is used if not specified + * @uiDefault CheckBox.icon.hoverSelectedBorderColor Color optional; CheckBox.icon.hoverBorderColor is used if not specified + * @uiDefault CheckBox.icon.hoverSelectedBackground Color optional; CheckBox.icon.hoverBackground is used if not specified + * @uiDefault CheckBox.icon.hoverCheckmarkColor Color optional; CheckBox.icon.checkmarkColor is used if not specified + * + * @uiDefault CheckBox.icon.pressedBorderColor Color optional * @uiDefault CheckBox.icon.pressedBackground Color optional - * @uiDefault CheckBox.icon.selectedPressedBackground Color optional; CheckBox.icon.pressedBackground is used if not specified - * @uiDefault CheckBox.arc int + * @uiDefault CheckBox.icon.pressedSelectedBorderColor Color optional; CheckBox.icon.pressedBorderColor is used if not specified + * @uiDefault CheckBox.icon.pressedSelectedBackground Color optional; CheckBox.icon.pressedBackground is used if not specified + * @uiDefault CheckBox.icon.pressedCheckmarkColor Color optional; CheckBox.icon.checkmarkColor is used if not specified * * @author Karl Tauber */ @@ -97,18 +106,23 @@ public class FlatCheckBoxIcon // focused @Styleable protected Color focusedBorderColor = getUIColor( "CheckBox.icon.focusedBorderColor", style ); @Styleable protected Color focusedBackground = getUIColor( "CheckBox.icon.focusedBackground", style ); - @Styleable protected Color selectedFocusedBorderColor = getUIColor( "CheckBox.icon.selectedFocusedBorderColor", style ); - @Styleable protected Color selectedFocusedBackground = getUIColor( "CheckBox.icon.selectedFocusedBackground", style ); - @Styleable protected Color selectedFocusedCheckmarkColor = getUIColor( "CheckBox.icon.selectedFocusedCheckmarkColor", style ); + /** @since 2 */ @Styleable protected Color focusedSelectedBorderColor = getUIColor( "CheckBox.icon.focusedSelectedBorderColor", style ); + /** @since 2 */ @Styleable protected Color focusedSelectedBackground = getUIColor( "CheckBox.icon.focusedSelectedBackground", style ); + /** @since 2 */ @Styleable protected Color focusedCheckmarkColor = getUIColor( "CheckBox.icon.focusedCheckmarkColor", style ); // hover @Styleable protected Color hoverBorderColor = getUIColor( "CheckBox.icon.hoverBorderColor", style ); @Styleable protected Color hoverBackground = getUIColor( "CheckBox.icon.hoverBackground", style ); - @Styleable protected Color selectedHoverBackground = getUIColor( "CheckBox.icon.selectedHoverBackground", style ); + /** @since 2 */ @Styleable protected Color hoverSelectedBorderColor = getUIColor( "CheckBox.icon.hoverSelectedBorderColor", style ); + /** @since 2 */ @Styleable protected Color hoverSelectedBackground = getUIColor( "CheckBox.icon.hoverSelectedBackground", style ); + /** @since 2 */ @Styleable protected Color hoverCheckmarkColor = getUIColor( "CheckBox.icon.hoverCheckmarkColor", style ); // pressed + /** @since 2 */ @Styleable protected Color pressedBorderColor = getUIColor( "CheckBox.icon.pressedBorderColor", style ); @Styleable protected Color pressedBackground = getUIColor( "CheckBox.icon.pressedBackground", style ); - @Styleable protected Color selectedPressedBackground = getUIColor( "CheckBox.icon.selectedPressedBackground", style ); + /** @since 2 */ @Styleable protected Color pressedSelectedBorderColor = getUIColor( "CheckBox.icon.pressedSelectedBorderColor", style ); + /** @since 2 */ @Styleable protected Color pressedSelectedBackground = getUIColor( "CheckBox.icon.pressedSelectedBackground", style ); + /** @since 2 */ @Styleable protected Color pressedCheckmarkColor = getUIColor( "CheckBox.icon.pressedCheckmarkColor", style ); protected static Color getUIColor( String key, String style ) { if( style != null ) { @@ -186,8 +200,8 @@ public class FlatCheckBoxIcon paintBackground( c, g ); // paint checkmark - if( selected || indeterminate ) { - g.setColor( getCheckmarkColor( c, selected, isFocused ) ); + if( selected ) { + g.setColor( getCheckmarkColor( c ) ); if( indeterminate ) paintIndeterminate( c, g ); else @@ -244,25 +258,26 @@ public class FlatCheckBoxIcon return FlatButtonUI.buttonStateColor( c, selected ? selectedBorderColor : borderColor, disabledBorderColor, - selected && selectedFocusedBorderColor != null ? selectedFocusedBorderColor : focusedBorderColor, - hoverBorderColor, - null ); + (selected && focusedSelectedBorderColor != null) ? focusedSelectedBorderColor : focusedBorderColor, + (selected && hoverSelectedBorderColor != null) ? hoverSelectedBorderColor : hoverBorderColor, + (selected && pressedSelectedBorderColor != null) ? pressedSelectedBorderColor : pressedBorderColor ); } protected Color getBackground( Component c, boolean selected ) { return FlatButtonUI.buttonStateColor( c, selected ? selectedBackground : background, disabledBackground, - (selected && selectedFocusedBackground != null) ? selectedFocusedBackground : focusedBackground, - (selected && selectedHoverBackground != null) ? selectedHoverBackground : hoverBackground, - (selected && selectedPressedBackground != null) ? selectedPressedBackground : pressedBackground ); + (selected && focusedSelectedBackground != null) ? focusedSelectedBackground : focusedBackground, + (selected && hoverSelectedBackground != null) ? hoverSelectedBackground : hoverBackground, + (selected && pressedSelectedBackground != null) ? pressedSelectedBackground : pressedBackground ); } - protected Color getCheckmarkColor( Component c, boolean selected, boolean isFocused ) { - return c.isEnabled() - ? ((selected && isFocused && selectedFocusedCheckmarkColor != null) - ? selectedFocusedCheckmarkColor - : checkmarkColor) - : disabledCheckmarkColor; + protected Color getCheckmarkColor( Component c ) { + return FlatButtonUI.buttonStateColor( c, + checkmarkColor, + disabledCheckmarkColor, + focusedCheckmarkColor, + hoverCheckmarkColor, + pressedCheckmarkColor ); } } diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties index 19bd9622..029979ce 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties @@ -158,9 +158,9 @@ CheckBox.icon[filled].selectedBorderColor = $CheckBox.icon.checkmarkColor CheckBox.icon[filled].selectedBackground = $CheckBox.icon.checkmarkColor CheckBox.icon[filled].checkmarkColor = $CheckBox.icon.background # hover -CheckBox.icon[filled].selectedHoverBackground = darken($CheckBox.icon[filled].selectedBackground,3%,derived) +CheckBox.icon[filled].hoverSelectedBackground = darken($CheckBox.icon[filled].selectedBackground,3%,derived) # pressed -CheckBox.icon[filled].selectedPressedBackground = darken($CheckBox.icon[filled].selectedBackground,6%,derived) +CheckBox.icon[filled].pressedSelectedBackground = darken($CheckBox.icon[filled].selectedBackground,6%,derived) #---- CheckBoxMenuItem ---- diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties index aed961da..90bf9a8a 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties @@ -161,13 +161,13 @@ CheckBox.icon[filled].selectedBorderColor = shade($CheckBox.icon[filled].selecte CheckBox.icon[filled].selectedBackground = @accentCheckmarkColor CheckBox.icon[filled].checkmarkColor = @buttonBackground # focused -CheckBox.icon[filled].selectedFocusedBorderColor = tint($CheckBox.icon[filled].selectedBackground,50%) -CheckBox.icon[filled].selectedFocusedBackground = $CheckBox.icon[filled].selectedBackground -CheckBox.icon[filled].selectedFocusedCheckmarkColor = $CheckBox.icon.focusedBackground +CheckBox.icon[filled].focusedSelectedBorderColor = tint($CheckBox.icon[filled].selectedBackground,50%) +CheckBox.icon[filled].focusedSelectedBackground = $CheckBox.icon[filled].selectedBackground +CheckBox.icon[filled].focusedCheckmarkColor = $CheckBox.icon.focusedBackground # hover -CheckBox.icon[filled].selectedHoverBackground = darken($CheckBox.icon[filled].selectedBackground,5%,derived) +CheckBox.icon[filled].hoverSelectedBackground = darken($CheckBox.icon[filled].selectedBackground,5%,derived) # pressed -CheckBox.icon[filled].selectedPressedBackground = darken($CheckBox.icon[filled].selectedBackground,10%,derived) +CheckBox.icon[filled].pressedSelectedBackground = darken($CheckBox.icon[filled].selectedBackground,10%,derived) #---- CheckBoxMenuItem ---- diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java index 868d7ddb..adf092d4 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java @@ -489,18 +489,23 @@ public class TestFlatStyleableInfo // focused "icon.focusedBorderColor", Color.class, "icon.focusedBackground", Color.class, - "icon.selectedFocusedBorderColor", Color.class, - "icon.selectedFocusedBackground", Color.class, - "icon.selectedFocusedCheckmarkColor", Color.class, + "icon.focusedSelectedBorderColor", Color.class, + "icon.focusedSelectedBackground", Color.class, + "icon.focusedCheckmarkColor", Color.class, // hover "icon.hoverBorderColor", Color.class, "icon.hoverBackground", Color.class, - "icon.selectedHoverBackground", Color.class, + "icon.hoverSelectedBorderColor", Color.class, + "icon.hoverSelectedBackground", Color.class, + "icon.hoverCheckmarkColor", Color.class, // pressed + "icon.pressedBorderColor", Color.class, "icon.pressedBackground", Color.class, - "icon.selectedPressedBackground", Color.class + "icon.pressedSelectedBorderColor", Color.class, + "icon.pressedSelectedBackground", Color.class, + "icon.pressedCheckmarkColor", Color.class ); } @@ -1060,18 +1065,23 @@ public class TestFlatStyleableInfo // focused "focusedBorderColor", Color.class, "focusedBackground", Color.class, - "selectedFocusedBorderColor", Color.class, - "selectedFocusedBackground", Color.class, - "selectedFocusedCheckmarkColor", Color.class, + "focusedSelectedBorderColor", Color.class, + "focusedSelectedBackground", Color.class, + "focusedCheckmarkColor", Color.class, // hover "hoverBorderColor", Color.class, "hoverBackground", Color.class, - "selectedHoverBackground", Color.class, + "hoverSelectedBorderColor", Color.class, + "hoverSelectedBackground", Color.class, + "hoverCheckmarkColor", Color.class, // pressed + "pressedBorderColor", Color.class, "pressedBackground", Color.class, - "selectedPressedBackground", Color.class + "pressedSelectedBorderColor", Color.class, + "pressedSelectedBackground", Color.class, + "pressedCheckmarkColor", Color.class ); } diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java index f8b585bf..ba5385a8 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java @@ -628,18 +628,23 @@ public class TestFlatStyling // focused ui.applyStyle( b, "icon.focusedBorderColor: #fff" ); ui.applyStyle( b, "icon.focusedBackground: #fff" ); - ui.applyStyle( b, "icon.selectedFocusedBorderColor: #fff" ); - ui.applyStyle( b, "icon.selectedFocusedBackground: #fff" ); - ui.applyStyle( b, "icon.selectedFocusedCheckmarkColor: #fff" ); + ui.applyStyle( b, "icon.focusedSelectedBorderColor: #fff" ); + ui.applyStyle( b, "icon.focusedSelectedBackground: #fff" ); + ui.applyStyle( b, "icon.focusedCheckmarkColor: #fff" ); // hover ui.applyStyle( b, "icon.hoverBorderColor: #fff" ); ui.applyStyle( b, "icon.hoverBackground: #fff" ); - ui.applyStyle( b, "icon.selectedHoverBackground: #fff" ); + ui.applyStyle( b, "icon.hoverSelectedBorderColor: #fff" ); + ui.applyStyle( b, "icon.hoverSelectedBackground: #fff" ); + ui.applyStyle( b, "icon.hoverCheckmarkColor: #fff" ); // pressed + ui.applyStyle( b, "icon.pressedBorderColor: #fff" ); ui.applyStyle( b, "icon.pressedBackground: #fff" ); - ui.applyStyle( b, "icon.selectedPressedBackground: #fff" ); + ui.applyStyle( b, "icon.pressedSelectedBorderColor: #fff" ); + ui.applyStyle( b, "icon.pressedSelectedBackground: #fff" ); + ui.applyStyle( b, "icon.pressedCheckmarkColor: #fff" ); } @Test @@ -1283,18 +1288,23 @@ public class TestFlatStyling // focused icon.applyStyleProperty( "focusedBorderColor", Color.WHITE ); icon.applyStyleProperty( "focusedBackground", Color.WHITE ); - icon.applyStyleProperty( "selectedFocusedBorderColor", Color.WHITE ); - icon.applyStyleProperty( "selectedFocusedBackground", Color.WHITE ); - icon.applyStyleProperty( "selectedFocusedCheckmarkColor", Color.WHITE ); + icon.applyStyleProperty( "focusedSelectedBorderColor", Color.WHITE ); + icon.applyStyleProperty( "focusedSelectedBackground", Color.WHITE ); + icon.applyStyleProperty( "focusedCheckmarkColor", Color.WHITE ); // hover icon.applyStyleProperty( "hoverBorderColor", Color.WHITE ); icon.applyStyleProperty( "hoverBackground", Color.WHITE ); - icon.applyStyleProperty( "selectedHoverBackground", Color.WHITE ); + icon.applyStyleProperty( "hoverSelectedBorderColor", Color.WHITE ); + icon.applyStyleProperty( "hoverSelectedBackground", Color.WHITE ); + icon.applyStyleProperty( "hoverCheckmarkColor", Color.WHITE ); // pressed + icon.applyStyleProperty( "pressedBorderColor", Color.WHITE ); icon.applyStyleProperty( "pressedBackground", Color.WHITE ); - icon.applyStyleProperty( "selectedPressedBackground", Color.WHITE ); + icon.applyStyleProperty( "pressedSelectedBorderColor", Color.WHITE ); + icon.applyStyleProperty( "pressedSelectedBackground", Color.WHITE ); + icon.applyStyleProperty( "pressedCheckmarkColor", Color.WHITE ); } @Test diff --git a/flatlaf-extras/src/main/resources/com/formdev/flatlaf/extras/resources/DerivedColorKeys.properties b/flatlaf-extras/src/main/resources/com/formdev/flatlaf/extras/resources/DerivedColorKeys.properties index 05d01807..f26977df 100644 --- a/flatlaf-extras/src/main/resources/com/formdev/flatlaf/extras/resources/DerivedColorKeys.properties +++ b/flatlaf-extras/src/main/resources/com/formdev/flatlaf/extras/resources/DerivedColorKeys.properties @@ -58,17 +58,17 @@ CheckBox.icon.disabledBackground = CheckBox.icon.background CheckBox.icon.focusedBackground = CheckBox.icon.background CheckBox.icon.hoverBackground = CheckBox.icon.background CheckBox.icon.pressedBackground = CheckBox.icon.background -CheckBox.icon.selectedFocusedBackground = CheckBox.icon.selectedBackground -CheckBox.icon.selectedHoverBackground = CheckBox.icon.selectedBackground -CheckBox.icon.selectedPressedBackground = CheckBox.icon.selectedBackground +CheckBox.icon.focusedSelectedBackground = CheckBox.icon.selectedBackground +CheckBox.icon.hoverSelectedBackground = CheckBox.icon.selectedBackground +CheckBox.icon.pressedSelectedBackground = CheckBox.icon.selectedBackground CheckBox.icon[filled].disabledBackground = CheckBox.icon[filled].background CheckBox.icon[filled].focusedBackground = CheckBox.icon[filled].background CheckBox.icon[filled].hoverBackground = CheckBox.icon[filled].background CheckBox.icon[filled].pressedBackground = CheckBox.icon[filled].background -CheckBox.icon[filled].selectedFocusedBackground = CheckBox.icon[filled].selectedBackground -CheckBox.icon[filled].selectedHoverBackground = CheckBox.icon[filled].selectedBackground -CheckBox.icon[filled].selectedPressedBackground = CheckBox.icon[filled].selectedBackground +CheckBox.icon[filled].focusedSelectedBackground = CheckBox.icon[filled].selectedBackground +CheckBox.icon[filled].hoverSelectedBackground = CheckBox.icon[filled].selectedBackground +CheckBox.icon[filled].pressedSelectedBackground = CheckBox.icon[filled].selectedBackground #---- CheckBoxMenuItem ---- diff --git a/flatlaf-testing/dumps/uidefaults/FlatDarkLaf_1.8.0.txt b/flatlaf-testing/dumps/uidefaults/FlatDarkLaf_1.8.0.txt index f1845746..eca1cbee 100644 --- a/flatlaf-testing/dumps/uidefaults/FlatDarkLaf_1.8.0.txt +++ b/flatlaf-testing/dumps/uidefaults/FlatDarkLaf_1.8.0.txt @@ -138,10 +138,10 @@ CheckBox.icon.selectedBorderColor #696b6d HSL 210 2 42 javax.swing.plaf.C CheckBox.icon [lazy] 15,15 com.formdev.flatlaf.icons.FlatCheckBoxIcon [UI] CheckBox.iconTextGap 4 CheckBox.icon[filled].checkmarkColor #46494b HSL 204 3 28 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon[filled].hoverSelectedBackground #a0a0a0 HSL 0 0 63 com.formdev.flatlaf.util.DerivedColor [UI] darken(3% autoInverse) +CheckBox.icon[filled].pressedSelectedBackground #999999 HSL 0 0 60 com.formdev.flatlaf.util.DerivedColor [UI] darken(6% autoInverse) CheckBox.icon[filled].selectedBackground #a8a8a8 HSL 0 0 66 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon[filled].selectedBorderColor #a8a8a8 HSL 0 0 66 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon[filled].selectedHoverBackground #a0a0a0 HSL 0 0 63 com.formdev.flatlaf.util.DerivedColor [UI] darken(3% autoInverse) -CheckBox.icon[filled].selectedPressedBackground #999999 HSL 0 0 60 com.formdev.flatlaf.util.DerivedColor [UI] darken(6% autoInverse) CheckBox.margin 2,2,2,2 javax.swing.plaf.InsetsUIResource [UI] CheckBox.rollover true CheckBox.textIconGap 4 diff --git a/flatlaf-testing/dumps/uidefaults/FlatLightLaf_1.8.0.txt b/flatlaf-testing/dumps/uidefaults/FlatLightLaf_1.8.0.txt index cd9780c8..6797cbd9 100644 --- a/flatlaf-testing/dumps/uidefaults/FlatLightLaf_1.8.0.txt +++ b/flatlaf-testing/dumps/uidefaults/FlatLightLaf_1.8.0.txt @@ -139,13 +139,13 @@ CheckBox.icon.selectedBorderColor #afafaf HSL 0 0 69 javax.swing.plaf.C CheckBox.icon [lazy] 15,15 com.formdev.flatlaf.icons.FlatCheckBoxIcon [UI] CheckBox.iconTextGap 4 CheckBox.icon[filled].checkmarkColor #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon[filled].focusedCheckmarkColor #eaf3fb HSL 208 68 95 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon[filled].focusedSelectedBackground #4e9de7 HSL 209 76 61 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon[filled].focusedSelectedBorderColor #a7cef3 HSL 209 76 80 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon[filled].hoverSelectedBackground #3891e4 HSL 209 76 56 com.formdev.flatlaf.util.DerivedColor [UI] darken(5% autoInverse) +CheckBox.icon[filled].pressedSelectedBackground #2184e1 HSL 209 76 51 com.formdev.flatlaf.util.DerivedColor [UI] darken(10% autoInverse) CheckBox.icon[filled].selectedBackground #4e9de7 HSL 209 76 61 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon[filled].selectedBorderColor #4a95db HSL 209 67 57 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon[filled].selectedFocusedBackground #4e9de7 HSL 209 76 61 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon[filled].selectedFocusedBorderColor #a7cef3 HSL 209 76 80 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon[filled].selectedFocusedCheckmarkColor #eaf3fb HSL 208 68 95 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon[filled].selectedHoverBackground #3891e4 HSL 209 76 56 com.formdev.flatlaf.util.DerivedColor [UI] darken(5% autoInverse) -CheckBox.icon[filled].selectedPressedBackground #2184e1 HSL 209 76 51 com.formdev.flatlaf.util.DerivedColor [UI] darken(10% autoInverse) CheckBox.margin 2,2,2,2 javax.swing.plaf.InsetsUIResource [UI] CheckBox.rollover true CheckBox.textIconGap 4 diff --git a/flatlaf-testing/dumps/uidefaults/FlatTestLaf_1.8.0.txt b/flatlaf-testing/dumps/uidefaults/FlatTestLaf_1.8.0.txt index 7a465092..51a88b32 100644 --- a/flatlaf-testing/dumps/uidefaults/FlatTestLaf_1.8.0.txt +++ b/flatlaf-testing/dumps/uidefaults/FlatTestLaf_1.8.0.txt @@ -135,12 +135,19 @@ CheckBox.icon.disabledBorderColor #bdbdbd HSL 0 0 74 javax.swing.plaf.C CheckBox.icon.disabledCheckmarkColor #ababab HSL 0 0 67 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon.focusedBackground #00ffff HSL 180 100 50 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon.focusedBorderColor #7b9fc7 HSL 212 40 63 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.focusedSelectedBorderColor #accff7 HSL 212 82 82 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon.hoverBackground #ffff00 HSL 60 100 50 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon.hoverBorderColor #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon.pressedBackground #ffc800 HSL 47 100 50 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.hoverCheckmarkColor #00ff00 HSL 120 100 50 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.hoverSelectedBackground #ff88ff HSL 300 100 77 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.hoverSelectedBorderColor #0000ff HSL 240 100 50 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.pressedBackground #ffe99e HSL 46 100 81 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.pressedBorderColor #ffc800 HSL 47 100 50 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.pressedCheckmarkColor #0000ff HSL 240 100 50 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.pressedSelectedBackground #88ffff HSL 180 100 77 javax.swing.plaf.ColorUIResource [UI] +CheckBox.icon.pressedSelectedBorderColor #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon.selectedBackground #4d89c9 HSL 211 53 55 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon.selectedBorderColor #4982cc HSL 214 56 54 javax.swing.plaf.ColorUIResource [UI] -CheckBox.icon.selectedFocusedBorderColor #accff7 HSL 212 82 82 javax.swing.plaf.ColorUIResource [UI] CheckBox.icon [lazy] 15,15 com.formdev.flatlaf.icons.FlatCheckBoxIcon [UI] CheckBox.iconTextGap 4 CheckBox.margin 2,2,2,2 javax.swing.plaf.InsetsUIResource [UI] diff --git a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties index 6f01e70d..f2e48de9 100644 --- a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties +++ b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties @@ -125,14 +125,21 @@ CheckBox.icon.disabledCheckmarkColor = #ABABAB # focused CheckBox.icon.focusedBorderColor = #7B9FC7 CheckBox.icon.focusedBackground = #0ff -CheckBox.icon.selectedFocusedBorderColor = #ACCFF7 +CheckBox.icon.focusedSelectedBorderColor = #ACCFF7 # hover CheckBox.icon.hoverBorderColor = #f00 CheckBox.icon.hoverBackground = #ff0 +CheckBox.icon.hoverSelectedBorderColor = #00f +CheckBox.icon.hoverSelectedBackground = #f8f +CheckBox.icon.hoverCheckmarkColor = #0f0 # pressed -CheckBox.icon.pressedBackground = #FFC800 +CheckBox.icon.pressedBorderColor = #FFC800 +CheckBox.icon.pressedBackground = #ffe99e +CheckBox.icon.pressedSelectedBorderColor = #f00 +CheckBox.icon.pressedSelectedBackground = #8ff +CheckBox.icon.pressedCheckmarkColor = #00f #---- CheckBoxMenuItem ---- diff --git a/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/FlatLafUIKeys.txt b/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/FlatLafUIKeys.txt index 5370d6c7..38cfddc3 100644 --- a/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/FlatLafUIKeys.txt +++ b/flatlaf-theme-editor/src/main/resources/com/formdev/flatlaf/themeeditor/FlatLafUIKeys.txt @@ -85,16 +85,21 @@ CheckBox.icon.focusColor CheckBox.icon.focusWidth CheckBox.icon.focusedBackground CheckBox.icon.focusedBorderColor +CheckBox.icon.focusedCheckmarkColor +CheckBox.icon.focusedSelectedBackground +CheckBox.icon.focusedSelectedBorderColor CheckBox.icon.hoverBackground CheckBox.icon.hoverBorderColor +CheckBox.icon.hoverCheckmarkColor +CheckBox.icon.hoverSelectedBackground +CheckBox.icon.hoverSelectedBorderColor CheckBox.icon.pressedBackground +CheckBox.icon.pressedBorderColor +CheckBox.icon.pressedCheckmarkColor +CheckBox.icon.pressedSelectedBackground +CheckBox.icon.pressedSelectedBorderColor CheckBox.icon.selectedBackground CheckBox.icon.selectedBorderColor -CheckBox.icon.selectedFocusedBackground -CheckBox.icon.selectedFocusedBorderColor -CheckBox.icon.selectedFocusedCheckmarkColor -CheckBox.icon.selectedHoverBackground -CheckBox.icon.selectedPressedBackground CheckBox.icon.style CheckBox.iconTextGap CheckBox.icon[filled].background @@ -105,16 +110,21 @@ CheckBox.icon[filled].disabledBorderColor CheckBox.icon[filled].disabledCheckmarkColor CheckBox.icon[filled].focusedBackground CheckBox.icon[filled].focusedBorderColor +CheckBox.icon[filled].focusedCheckmarkColor +CheckBox.icon[filled].focusedSelectedBackground +CheckBox.icon[filled].focusedSelectedBorderColor CheckBox.icon[filled].hoverBackground CheckBox.icon[filled].hoverBorderColor +CheckBox.icon[filled].hoverCheckmarkColor +CheckBox.icon[filled].hoverSelectedBackground +CheckBox.icon[filled].hoverSelectedBorderColor CheckBox.icon[filled].pressedBackground +CheckBox.icon[filled].pressedBorderColor +CheckBox.icon[filled].pressedCheckmarkColor +CheckBox.icon[filled].pressedSelectedBackground +CheckBox.icon[filled].pressedSelectedBorderColor CheckBox.icon[filled].selectedBackground CheckBox.icon[filled].selectedBorderColor -CheckBox.icon[filled].selectedFocusedBackground -CheckBox.icon[filled].selectedFocusedBorderColor -CheckBox.icon[filled].selectedFocusedCheckmarkColor -CheckBox.icon[filled].selectedHoverBackground -CheckBox.icon[filled].selectedPressedBackground CheckBox.margin CheckBox.rollover CheckBox.textIconGap