This is an automated email from the ASF dual-hosted git repository.

ebakke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new c6e7f25fb1 Improve the appearance of disabled icons on dark LAFs, by 
adjusting ImageUtilities.DisabledButtonFilter.
c6e7f25fb1 is described below

commit c6e7f25fb14e3a437276e83965c63e5bf3c63607
Author: Eirik Bakke <eba...@ultorg.com>
AuthorDate: Sat Apr 1 17:13:02 2023 -0400

    Improve the appearance of disabled icons on dark LAFs, by adjusting 
ImageUtilities.DisabledButtonFilter.
    
    Also adjust the disabled TabControlIcon color on both FlatLAF Light and 
FlatLAF Dark, to make these buttons more obviously disabled.
---
 .../swing/laf/flatlaf/FlatDarkLaf.properties       |  2 ++
 .../netbeans/swing/laf/flatlaf/FlatLaf.properties  |  2 +-
 .../src/org/openide/util/ImageUtilities.java       | 30 ++++++++++++++--------
 3 files changed, 23 insertions(+), 11 deletions(-)

diff --git 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties
 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties
index 374489a103..c5b28b468e 100644
--- 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties
+++ 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties
@@ -50,6 +50,8 @@ EditorTab.underlineColor=$TabbedPane.underlineColor
 EditorTab.inactiveUnderlineColor=#00000000
 EditorTab.tabSeparatorColor=darken($Component.borderColor,15%)
 
+TabControlIcon.disabledForeground=lighten(@background,15%)
+
 #---- ViewTab ----
 
 ViewTab.background=$EditorTab.background
diff --git 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
index 72b253d074..4a28bafb68 100644
--- 
a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
+++ 
b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties
@@ -85,7 +85,7 @@ nb.completion.selectedForeground=@selectionForeground
 #---- TabControlIcon ----
 
 TabControlIcon.foreground=tint(@foreground,40%)
-TabControlIcon.disabledForeground=lighten($TabControlIcon.foreground,25%)
+TabControlIcon.disabledForeground=lighten($TabControlIcon.foreground,27%)
 TabControlIcon.rolloverBackground=$Button.toolbar.hoverBackground
 TabControlIcon.pressedBackground=$Button.toolbar.pressedBackground
 TabControlIcon.close.rolloverBackground=#c74f50
diff --git a/platform/openide.util.ui/src/org/openide/util/ImageUtilities.java 
b/platform/openide.util.ui/src/org/openide/util/ImageUtilities.java
index f25db81bfd..d66dd82b63 100644
--- a/platform/openide.util.ui/src/org/openide/util/ImageUtilities.java
+++ b/platform/openide.util.ui/src/org/openide/util/ImageUtilities.java
@@ -457,7 +457,8 @@ public final class ImageUtilities {
         /* FilteredIcon's Javadoc mentions a caveat about the Component 
parameter that is passed to
         Icon.paintIcon. It's not really a problem; previous implementations 
had the same
         behavior. */
-        return FilteredIcon.create(DisabledButtonFilter.INSTANCE, icon);
+        return FilteredIcon.create(isDarkLaF()
+                ? DisabledButtonFilter.INSTANCE_DARK : 
DisabledButtonFilter.INSTANCE_LIGHT, icon);
     }
 
     /**
@@ -1238,24 +1239,33 @@ public final class ImageUtilities {
         }
     }
 
-    private static class DisabledButtonFilter extends RGBImageFilter {
-        public static final RGBImageFilter INSTANCE = new 
DisabledButtonFilter();
+    private static final class DisabledButtonFilter extends RGBImageFilter {
+        public static final RGBImageFilter INSTANCE_LIGHT = new 
DisabledButtonFilter(false);
+        public static final RGBImageFilter INSTANCE_DARK  = new 
DisabledButtonFilter(true);
+        private final int baseGray;
 
-        DisabledButtonFilter() {
+        DisabledButtonFilter(boolean dark) {
             canFilterIndexColorModel = true;
+            baseGray = dark ? 0x444444 : 0x888888;
         }
 
-        public int filterRGB(int x, int y, int rgb) {
-            // Reduce the color bandwidth in quarter (>> 2) and Shift 0x88.
-            return (rgb & 0xff000000) + 0x888888 + ((((rgb >> 16) & 0xff) >> 
2) << 16) + ((((rgb >> 8) & 0xff) >> 2) << 8) + (((rgb) & 0xff) >> 2);
+        @Override
+        public int filterRGB(int x, int y, int argb) {
+            return
+                // Keep the alpha channel unmodified.
+                (argb & 0xff000000) +
+                // Reduce the color bandwidth by a quarter (>> 2), and mix 
with gray.
+                baseGray +
+                ((((argb >> 16) & 0xff) >> 2) << 16) +
+                ((((argb >> 8 ) & 0xff) >> 2) <<  8) +
+                ((((argb      ) & 0xff) >> 2)      );
         }
 
         // override the superclass behaviour to not pollute
         // the heap with useless properties strings. Saves tens of KBs
         @Override
-        public void setProperties(Hashtable props) {
-            props = (Hashtable) props.clone();
-            consumer.setProperties(props);
+        public void setProperties(Hashtable<?,?> props) {
+            consumer.setProperties((Hashtable<?,?>) props.clone());
         }
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to