Button and ToggleButton: added missing border colors for pressed and selected states (issue #848)

This commit is contained in:
Karl Tauber
2024-05-30 19:22:25 +02:00
parent 17ce6d39b4
commit 969d2642de
8 changed files with 42 additions and 3 deletions

View File

@@ -5,6 +5,8 @@ FlatLaf Change Log
#### New features and improvements
- Button and ToggleButton: Added missing border colors for pressed and selected
states. (issue #848)
- Label: Support painting background with rounded corners. (issue #842)
- Popup: Fixed flicker of popups (e.g. tooltips) while they are moving (e.g.
following mouse pointer). (issues #832 and #672)

View File

@@ -42,6 +42,9 @@ import com.formdev.flatlaf.util.UIScale;
* @uiDefault Button.disabledBorderColor Color
* @uiDefault Button.focusedBorderColor Color
* @uiDefault Button.hoverBorderColor Color optional
* @uiDefault Button.pressedBorderColor Color optional
* @uiDefault Button.selectedBorderColor Color optional
* @uiDefault Button.disabledSelectedBorderColor Color optional
*
* @uiDefault Button.default.borderWidth int or float
* @uiDefault Button.default.borderColor Color
@@ -49,6 +52,7 @@ import com.formdev.flatlaf.util.UIScale;
* @uiDefault Button.default.endBorderColor Color optional; if set, a gradient paint is used
* @uiDefault Button.default.focusedBorderColor Color
* @uiDefault Button.default.focusColor Color
* @uiDefault Button.default.pressedBorderColor Color optional
* @uiDefault Button.default.hoverBorderColor Color optional
*
* @uiDefault Button.toolbar.focusWidth int or float optional; default is 1.5
@@ -65,6 +69,9 @@ public class FlatButtonBorder
protected Color endBorderColor = UIManager.getColor( "Button.endBorderColor" );
@Styleable protected Color hoverBorderColor = UIManager.getColor( "Button.hoverBorderColor" );
/** @since 3.5 */ @Styleable protected Color pressedBorderColor = UIManager.getColor( "Button.pressedBorderColor" );
/** @since 3.5 */ @Styleable protected Color selectedBorderColor = UIManager.getColor( "Button.selectedBorderColor" );
/** @since 3.5 */ @Styleable protected Color disabledSelectedBorderColor = UIManager.getColor( "Button.disabledSelectedBorderColor" );
@Styleable(dot=true) protected float defaultBorderWidth = FlatUIUtils.getUIFloat( "Button.default.borderWidth", 1 );
@Styleable(dot=true) protected Color defaultBorderColor = FlatUIUtils.getUIColor( "Button.default.startBorderColor", "Button.default.borderColor" );
@@ -72,6 +79,7 @@ public class FlatButtonBorder
@Styleable(dot=true) protected Color defaultFocusedBorderColor = UIManager.getColor( "Button.default.focusedBorderColor" );
@Styleable(dot=true) protected Color defaultFocusColor = UIManager.getColor( "Button.default.focusColor" );
@Styleable(dot=true) protected Color defaultHoverBorderColor = UIManager.getColor( "Button.default.hoverBorderColor" );
/** @since 3.5 */ @Styleable(dot=true) protected Color defaultPressedBorderColor = UIManager.getColor( "Button.default.pressedBorderColor" );
/** @since 1.4 */ @Styleable(dot=true) protected float toolbarFocusWidth = FlatUIUtils.getUIFloat( "Button.toolbar.focusWidth", 1.5f );
/** @since 1.4 */ @Styleable(dot=true) protected Color toolbarFocusColor = UIManager.getColor( "Button.toolbar.focusColor" );
@@ -139,12 +147,13 @@ public class FlatButtonBorder
@Override
protected Paint getBorderColor( Component c ) {
boolean def = FlatButtonUI.isDefaultButton( c );
boolean selected = (c instanceof AbstractButton && ((AbstractButton)c).isSelected());
Paint color = FlatButtonUI.buttonStateColor( c,
def ? defaultBorderColor : borderColor,
disabledBorderColor,
def ? defaultBorderColor : ((selected && selectedBorderColor != null) ? selectedBorderColor : borderColor),
(selected && disabledSelectedBorderColor != null) ? disabledSelectedBorderColor : disabledBorderColor,
def ? defaultFocusedBorderColor : focusedBorderColor,
def ? defaultHoverBorderColor : hoverBorderColor,
null );
def ? defaultPressedBorderColor : pressedBorderColor );
// change to gradient paint if start/end colors are specified
Color startBg = def ? defaultBorderColor : borderColor;

View File

@@ -994,12 +994,16 @@ public class TestFlatStyleableInfo
"disabledBorderColor", Color.class,
"focusedBorderColor", Color.class,
"hoverBorderColor", Color.class,
"pressedBorderColor", Color.class,
"selectedBorderColor", Color.class,
"disabledSelectedBorderColor", Color.class,
"default.borderWidth", float.class,
"default.borderColor", Color.class,
"default.focusedBorderColor", Color.class,
"default.focusColor", Color.class,
"default.hoverBorderColor", Color.class,
"default.pressedBorderColor", Color.class,
"toolbar.focusWidth", float.class,
"toolbar.focusColor", Color.class,

View File

@@ -956,12 +956,16 @@ public class TestFlatStyleableValue
testColor( c, ui, "disabledBorderColor", 0x123456 );
testColor( c, ui, "focusedBorderColor", 0x123456 );
testColor( c, ui, "hoverBorderColor", 0x123456 );
testColor( c, ui, "pressedBorderColor", 0x123456 );
testColor( c, ui, "selectedBorderColor", 0x123456 );
testColor( c, ui, "disabledSelectedBorderColor", 0x123456 );
testFloat( c, ui, "default.borderWidth", 1.23f );
testColor( c, ui, "default.borderColor", 0x123456 );
testColor( c, ui, "default.focusedBorderColor", 0x123456 );
testColor( c, ui, "default.focusColor", 0x123456 );
testColor( c, ui, "default.hoverBorderColor", 0x123456 );
testColor( c, ui, "default.pressedBorderColor", 0x123456 );
testFloat( c, ui, "toolbar.focusWidth", 1.23f );
testColor( c, ui, "toolbar.focusColor", 0x123456 );
@@ -1026,12 +1030,16 @@ public class TestFlatStyleableValue
testValue( border, "disabledBorderColor", Color.WHITE );
testValue( border, "focusedBorderColor", Color.WHITE );
testValue( border, "hoverBorderColor", Color.WHITE );
testValue( border, "pressedBorderColor", Color.WHITE );
testValue( border, "selectedBorderColor", Color.WHITE );
testValue( border, "disabledSelectedBorderColor", Color.WHITE );
testValue( border, "default.borderWidth", 2f );
testValue( border, "default.borderColor", Color.WHITE );
testValue( border, "default.focusedBorderColor", Color.WHITE );
testValue( border, "default.focusColor", Color.WHITE );
testValue( border, "default.hoverBorderColor", Color.WHITE );
testValue( border, "default.pressedBorderColor", Color.WHITE );
testValue( border, "toolbar.focusWidth", 1.5f );
testValue( border, "toolbar.focusColor", Color.WHITE );

View File

@@ -1295,12 +1295,16 @@ public class TestFlatStyling
border.applyStyleProperty( "disabledBorderColor", Color.WHITE );
border.applyStyleProperty( "focusedBorderColor", Color.WHITE );
border.applyStyleProperty( "hoverBorderColor", Color.WHITE );
border.applyStyleProperty( "pressedBorderColor", Color.WHITE );
border.applyStyleProperty( "selectedBorderColor", Color.WHITE );
border.applyStyleProperty( "disabledSelectedBorderColor", Color.WHITE );
border.applyStyleProperty( "default.borderWidth", 2 );
border.applyStyleProperty( "default.borderColor", Color.WHITE );
border.applyStyleProperty( "default.focusedBorderColor", Color.WHITE );
border.applyStyleProperty( "default.focusColor", Color.WHITE );
border.applyStyleProperty( "default.hoverBorderColor", Color.WHITE );
border.applyStyleProperty( "default.pressedBorderColor", Color.WHITE );
border.applyStyleProperty( "toolbar.focusWidth", 1.5f );
border.applyStyleProperty( "toolbar.focusColor", Color.WHITE );

View File

@@ -79,6 +79,7 @@ Button.default.hoverBackground #ffff00 HSL 60 100 50 javax.swing.plaf.Colo
Button.default.hoverBorderColor #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.default.hoverForeground #0000ff HSL 240 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.default.pressedBackground #ffc800 HSL 47 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.default.pressedBorderColor #8888ff HSL 240 100 77 javax.swing.plaf.ColorUIResource [UI]
Button.default.pressedForeground #0080ff HSL 210 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.default.startBackground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
Button.default.startBorderColor #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
@@ -87,6 +88,7 @@ Button.disabledBackground #e0e0e0 HSL 0 0 88 javax.swing.plaf.Colo
Button.disabledBorderColor #000088 HSL 240 100 27 javax.swing.plaf.ColorUIResource [UI]
Button.disabledForeground #000088 HSL 240 100 27 javax.swing.plaf.ColorUIResource [UI]
Button.disabledSelectedBackground #112233 HSL 210 50 13 javax.swing.plaf.ColorUIResource [UI]
Button.disabledSelectedBorderColor #ffff00 HSL 60 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.disabledSelectedForeground #ffcccc HSL 0 100 90 javax.swing.plaf.ColorUIResource [UI]
Button.disabledText #000088 HSL 240 100 27 javax.swing.plaf.ColorUIResource [UI]
Button.endBackground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
@@ -106,9 +108,11 @@ Button.light #e3e3e3 HSL 0 0 89 javax.swing.plaf.Colo
Button.margin 2,14,2,14 javax.swing.plaf.InsetsUIResource [UI]
Button.minimumWidth 72
Button.pressedBackground #ffc800 HSL 47 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.pressedBorderColor #00ffff HSL 180 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.pressedForeground #0080ff HSL 210 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.rollover true
Button.selectedBackground #ffbbbb HSL 0 100 87 javax.swing.plaf.ColorUIResource [UI]
Button.selectedBorderColor #ff00ff HSL 300 100 50 javax.swing.plaf.ColorUIResource [UI]
Button.selectedForeground #332211 HSL 30 50 13 javax.swing.plaf.ColorUIResource [UI]
Button.shadow #a0a0a0 HSL 0 0 63 javax.swing.plaf.ColorUIResource [UI]
Button.startBackground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]

View File

@@ -94,6 +94,9 @@ Button.endBorderColor = #f00
Button.disabledBorderColor = #008
Button.focusedBorderColor = #466d94
Button.hoverBorderColor = #f00
Button.pressedBorderColor = #0ff
Button.selectedBorderColor = #f0f
Button.disabledSelectedBorderColor = #ff0
Button.innerFocusWidth = 1
@@ -109,6 +112,7 @@ Button.default.pressedForeground = #0080ff
Button.default.startBorderColor = #f00
Button.default.endBorderColor = #00f
Button.default.hoverBorderColor = #f00
Button.default.pressedBorderColor = #88f
Button.default.focusedBorderColor = #537699
Button.default.focusColor = #f00

View File

@@ -29,6 +29,7 @@ Button.default.hoverBackground
Button.default.hoverBorderColor
Button.default.hoverForeground
Button.default.pressedBackground
Button.default.pressedBorderColor
Button.default.pressedForeground
Button.default.startBackground
Button.default.startBorderColor
@@ -37,6 +38,7 @@ Button.disabledBackground
Button.disabledBorderColor
Button.disabledForeground
Button.disabledSelectedBackground
Button.disabledSelectedBorderColor
Button.disabledSelectedForeground
Button.disabledText
Button.endBackground
@@ -57,9 +59,11 @@ Button.light
Button.margin
Button.minimumWidth
Button.pressedBackground
Button.pressedBorderColor
Button.pressedForeground
Button.rollover
Button.selectedBackground
Button.selectedBorderColor
Button.selectedForeground
Button.shadow
Button.startBackground