Search/clear icons: option to ignore button state (hover/pressed) for usage where button background changes color on hover/pressed

This commit is contained in:
Karl Tauber
2021-12-13 00:47:23 +01:00
parent 1b3cc223da
commit 73c37b2018
2 changed files with 21 additions and 3 deletions

View File

@@ -47,8 +47,16 @@ public class FlatClearIcon
@Styleable protected Color clearIconHoverColor = UIManager.getColor( "SearchField.clearIconHoverColor" ); @Styleable protected Color clearIconHoverColor = UIManager.getColor( "SearchField.clearIconHoverColor" );
@Styleable protected Color clearIconPressedColor = UIManager.getColor( "SearchField.clearIconPressedColor" ); @Styleable protected Color clearIconPressedColor = UIManager.getColor( "SearchField.clearIconPressedColor" );
private final boolean ignoreButtonState;
public FlatClearIcon() { public FlatClearIcon() {
this( false );
}
/** @since 2 */
public FlatClearIcon( boolean ignoreButtonState ) {
super( 16, 16, null ); super( 16, 16, null );
this.ignoreButtonState = ignoreButtonState;
} }
/** @since 2 */ /** @since 2 */
@@ -63,7 +71,7 @@ public class FlatClearIcon
@Override @Override
protected void paintIcon( Component c, Graphics2D g ) { protected void paintIcon( Component c, Graphics2D g ) {
if( c instanceof AbstractButton ) { if( !ignoreButtonState && c instanceof AbstractButton ) {
ButtonModel model = ((AbstractButton)c).getModel(); ButtonModel model = ((AbstractButton)c).getModel();
if( model.isPressed() || model.isRollover() ) { if( model.isPressed() || model.isRollover() ) {
/* /*

View File

@@ -45,8 +45,16 @@ public class FlatSearchIcon
@Styleable protected Color searchIconHoverColor = UIManager.getColor( "SearchField.searchIconHoverColor" ); @Styleable protected Color searchIconHoverColor = UIManager.getColor( "SearchField.searchIconHoverColor" );
@Styleable protected Color searchIconPressedColor = UIManager.getColor( "SearchField.searchIconPressedColor" ); @Styleable protected Color searchIconPressedColor = UIManager.getColor( "SearchField.searchIconPressedColor" );
private final boolean ignoreButtonState;
public FlatSearchIcon() { public FlatSearchIcon() {
this( false );
}
/** @since 2 */
public FlatSearchIcon( boolean ignoreButtonState ) {
super( 16, 16, null ); super( 16, 16, null );
this.ignoreButtonState = ignoreButtonState;
} }
/** @since 2 */ /** @since 2 */
@@ -70,7 +78,9 @@ public class FlatSearchIcon
</svg> </svg>
*/ */
g.setColor( FlatButtonUI.buttonStateColor( c, searchIconColor, searchIconColor, g.setColor( ignoreButtonState
? searchIconColor
: FlatButtonUI.buttonStateColor( c, searchIconColor, searchIconColor,
null, searchIconHoverColor, searchIconPressedColor ) ); null, searchIconHoverColor, searchIconPressedColor ) );
// paint magnifier // paint magnifier