mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 07:17:13 -06:00
FlatSVGIcon: use grayFilter and graphics proxy to paint disabled icons without bitmaps
This commit is contained in:
@@ -121,14 +121,10 @@ public abstract class FlatLaf
|
||||
public Icon getDisabledIcon( JComponent component, Icon icon ) {
|
||||
if( icon instanceof ImageIcon ) {
|
||||
Object grayFilter = UIManager.get( "Component.grayFilter" );
|
||||
if( !(grayFilter instanceof ImageFilter) ) {
|
||||
// fallback
|
||||
grayFilter = isDark()
|
||||
? new GrayFilter( -20, -70, 100 )
|
||||
: new GrayFilter( 25, -25, 100 );
|
||||
}
|
||||
ImageFilter filter = (grayFilter instanceof ImageFilter)
|
||||
? (ImageFilter) grayFilter
|
||||
: GrayFilter.createDisabledIconFilter( isDark() ); // fallback
|
||||
|
||||
ImageFilter filter = (ImageFilter) grayFilter;
|
||||
Function<Image, Image> mapper = img -> {
|
||||
ImageProducer producer = new FilteredImageSource( img.getSource(), filter );
|
||||
return Toolkit.getDefaultToolkit().createImage( producer );
|
||||
|
||||
@@ -19,6 +19,12 @@ public class GrayFilter
|
||||
private final int origContrast;
|
||||
private final int origBrightness;
|
||||
|
||||
public static GrayFilter createDisabledIconFilter( boolean dark ) {
|
||||
return dark
|
||||
? new GrayFilter( -20, -70, 100 )
|
||||
: new GrayFilter( 25, -25, 100 );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param brightness in range [-100..100] where 0 has no effect
|
||||
* @param contrast in range [-100..100] where 0 has no effect
|
||||
|
||||
Reference in New Issue
Block a user