31 import java.lang.reflect.Method;
32 import java.security.AccessController;
33 import java.security.PrivilegedAction;
34 import java.util.*;
35
36 import javax.swing.*;
37 import javax.swing.border.Border;
38 import javax.swing.plaf.UIResource;
39
40 import sun.awt.AppContext;
41
42 import sun.lwawt.macosx.CImage;
43 import sun.lwawt.macosx.CImage.Creator;
44 import sun.lwawt.macosx.CPlatformWindow;
45 import sun.misc.Launcher;
46 import sun.reflect.misc.ReflectUtil;
47 import sun.security.action.GetPropertyAction;
48 import sun.swing.SwingUtilities2;
49
50 import com.apple.laf.AquaImageFactory.SlicedImageControl;
51 import sun.awt.image.MultiResolutionBufferedImage;
52
53 final class AquaUtils {
54
55 private static final String ANIMATIONS_PROPERTY = "swing.enableAnimations";
56
57 /**
58 * Suppresses default constructor, ensuring non-instantiability.
59 */
60 private AquaUtils() {
61 }
62
63 /**
64 * Convenience function for determining ComponentOrientation. Helps us
65 * avoid having Munge directives throughout the code.
66 */
67 static boolean isLeftToRight(final Component c) {
68 return c.getComponentOrientation().isLeftToRight();
69 }
70
71 static void enforceComponentOrientation(final Component c, final ComponentOrientation orientation) {
107 @Override
108 int getGreyFor(final int gray) {
109 return gray * 75 / 100;
110 }
111 });
112 return Toolkit.getDefaultToolkit().createImage(prod);
113 }
114
115 static Image generateDisabledImage(final Image image) {
116 final ImageProducer prod = new FilteredImageSource(image.getSource(), new IconImageFilter() {
117 @Override
118 int getGreyFor(final int gray) {
119 return 255 - ((255 - gray) * 65 / 100);
120 }
121 });
122 return Toolkit.getDefaultToolkit().createImage(prod);
123 }
124
125 static Image generateLightenedImage(final Image image, final int percent) {
126 final GrayFilter filter = new GrayFilter(true, percent);
127 return (image instanceof MultiResolutionBufferedImage)
128 ? ((MultiResolutionBufferedImage) image).map(
129 rv -> generateLightenedImage(rv, filter))
130 : generateLightenedImage(image, filter);
131 }
132
133 static Image generateLightenedImage(Image image, ImageFilter filter) {
134 final ImageProducer prod = new FilteredImageSource(image.getSource(), filter);
135 return Toolkit.getDefaultToolkit().createImage(prod);
136 }
137
138 private abstract static class IconImageFilter extends RGBImageFilter {
139 IconImageFilter() {
140 super();
141 canFilterIndexColorModel = true;
142 }
143
144 @Override
145 public final int filterRGB(final int x, final int y, final int rgb) {
146 final int red = (rgb >> 16) & 0xff;
147 final int green = (rgb >> 8) & 0xff;
148 final int blue = rgb & 0xff;
|
31 import java.lang.reflect.Method;
32 import java.security.AccessController;
33 import java.security.PrivilegedAction;
34 import java.util.*;
35
36 import javax.swing.*;
37 import javax.swing.border.Border;
38 import javax.swing.plaf.UIResource;
39
40 import sun.awt.AppContext;
41
42 import sun.lwawt.macosx.CImage;
43 import sun.lwawt.macosx.CImage.Creator;
44 import sun.lwawt.macosx.CPlatformWindow;
45 import sun.misc.Launcher;
46 import sun.reflect.misc.ReflectUtil;
47 import sun.security.action.GetPropertyAction;
48 import sun.swing.SwingUtilities2;
49
50 import com.apple.laf.AquaImageFactory.SlicedImageControl;
51 import sun.awt.image.MultiResolutionCachedImage;
52
53 final class AquaUtils {
54
55 private static final String ANIMATIONS_PROPERTY = "swing.enableAnimations";
56
57 /**
58 * Suppresses default constructor, ensuring non-instantiability.
59 */
60 private AquaUtils() {
61 }
62
63 /**
64 * Convenience function for determining ComponentOrientation. Helps us
65 * avoid having Munge directives throughout the code.
66 */
67 static boolean isLeftToRight(final Component c) {
68 return c.getComponentOrientation().isLeftToRight();
69 }
70
71 static void enforceComponentOrientation(final Component c, final ComponentOrientation orientation) {
107 @Override
108 int getGreyFor(final int gray) {
109 return gray * 75 / 100;
110 }
111 });
112 return Toolkit.getDefaultToolkit().createImage(prod);
113 }
114
115 static Image generateDisabledImage(final Image image) {
116 final ImageProducer prod = new FilteredImageSource(image.getSource(), new IconImageFilter() {
117 @Override
118 int getGreyFor(final int gray) {
119 return 255 - ((255 - gray) * 65 / 100);
120 }
121 });
122 return Toolkit.getDefaultToolkit().createImage(prod);
123 }
124
125 static Image generateLightenedImage(final Image image, final int percent) {
126 final GrayFilter filter = new GrayFilter(true, percent);
127 return (image instanceof MultiResolutionCachedImage)
128 ? ((MultiResolutionCachedImage) image).map(
129 rv -> generateLightenedImage(rv, filter))
130 : generateLightenedImage(image, filter);
131 }
132
133 static Image generateLightenedImage(Image image, ImageFilter filter) {
134 final ImageProducer prod = new FilteredImageSource(image.getSource(), filter);
135 return Toolkit.getDefaultToolkit().createImage(prod);
136 }
137
138 private abstract static class IconImageFilter extends RGBImageFilter {
139 IconImageFilter() {
140 super();
141 canFilterIndexColorModel = true;
142 }
143
144 @Override
145 public final int filterRGB(final int x, final int y, final int rgb) {
146 final int red = (rgb >> 16) & 0xff;
147 final int green = (rgb >> 8) & 0xff;
148 final int blue = rgb & 0xff;
|