< prev index next >

src/java.desktop/macosx/classes/com/apple/laf/AquaUtils.java

Print this page

        

*** 46,55 **** --- 46,56 ---- import sun.reflect.misc.ReflectUtil; import sun.security.action.GetPropertyAction; import sun.swing.SwingUtilities2; import com.apple.laf.AquaImageFactory.SlicedImageControl; + import java.util.function.Function; import sun.awt.image.MultiResolutionCachedImage; final class AquaUtils { private static final String ANIMATIONS_PROPERTY = "swing.enableAnimations";
*** 102,143 **** static Creator getCImageCreator() { return cImageCreator.get(); } static Image generateSelectedDarkImage(final Image image) { ! final ImageProducer prod = new FilteredImageSource(image.getSource(), new IconImageFilter() { @Override int getGreyFor(final int gray) { return gray * 75 / 100; } ! }); ! return Toolkit.getDefaultToolkit().createImage(prod); } static Image generateDisabledImage(final Image image) { ! final ImageProducer prod = new FilteredImageSource(image.getSource(), new IconImageFilter() { @Override int getGreyFor(final int gray) { return 255 - ((255 - gray) * 65 / 100); } ! }); ! return Toolkit.getDefaultToolkit().createImage(prod); } static Image generateLightenedImage(final Image image, final int percent) { final GrayFilter filter = new GrayFilter(true, percent); ! return (image instanceof MultiResolutionCachedImage) ! ? ((MultiResolutionCachedImage) image).map( ! rv -> generateLightenedImage(rv, filter)) ! : generateLightenedImage(image, filter); } ! static Image generateLightenedImage(Image image, ImageFilter filter) { final ImageProducer prod = new FilteredImageSource(image.getSource(), filter); return Toolkit.getDefaultToolkit().createImage(prod); } private abstract static class IconImageFilter extends RGBImageFilter { IconImageFilter() { super(); canFilterIndexColorModel = true; } --- 103,153 ---- static Creator getCImageCreator() { return cImageCreator.get(); } static Image generateSelectedDarkImage(final Image image) { ! final ImageFilter filter = new IconImageFilter() { @Override int getGreyFor(final int gray) { return gray * 75 / 100; } ! }; ! return map(image, (img) -> generateFilteredImage(img, filter)); } static Image generateDisabledImage(final Image image) { ! final ImageFilter filter = new IconImageFilter() { @Override int getGreyFor(final int gray) { return 255 - ((255 - gray) * 65 / 100); } ! }; ! return map(image, (img) -> generateFilteredImage(img, filter)); } static Image generateLightenedImage(final Image image, final int percent) { final GrayFilter filter = new GrayFilter(true, percent); ! return map(image, (img) -> generateFilteredImage(img, filter)); } ! static Image generateFilteredImage(Image image, ImageFilter filter) { final ImageProducer prod = new FilteredImageSource(image.getSource(), filter); return Toolkit.getDefaultToolkit().createImage(prod); } + private static Image map(Image image, Function<Image, Image> mapper) { + if (image instanceof MultiResolutionCachedImage) { + return ((MultiResolutionCachedImage) image).map(mapper); + } else if (image instanceof MultiResolutionImage) { + MultiResolutionImage mrImage = (MultiResolutionImage) image; + Image[] mappedImages = mrImage.getResolutionVariants().stream() + .map(mapper).toArray(Image[]::new); + return new BaseMultiResolutionImage(mappedImages); + } + return mapper.apply(image); + } + private abstract static class IconImageFilter extends RGBImageFilter { IconImageFilter() { super(); canFilterIndexColorModel = true; }
< prev index next >