Add a registry key to select daltonization algotihm

This commit is contained in:
Sergey Malenkov
2016-03-21 22:26:49 +03:00
parent fb6c72cf1b
commit fb50cf14b5
5 changed files with 27 additions and 8 deletions
@@ -3,6 +3,13 @@ package com.intellij.ide.ui;
import java.awt.image.ImageFilter;
final class DaltonizationFilter extends WeightFilter {
public static ImageFilter get(ColorBlindness blindness) {
if (blindness == ColorBlindness.protanopia) return protanopia;
if (blindness == ColorBlindness.deuteranopia) return deuteranopia;
if (blindness == ColorBlindness.tritanopia) return tritanopia;
return null;
}
public static final ImageFilter protanopia = forProtanopia(null);
public static final ImageFilter deuteranopia = forDeuteranopia(null);
public static final ImageFilter tritanopia = forTritanopia(null);
@@ -95,6 +95,13 @@ final class MatrixFilter extends WeightFilter {
TRITANOPIA_CORRECTION = Matrix.create(3, 1, 0, 0, 0, 1, 0, .7, .7, 1);
}
public static ImageFilter get(ColorBlindness blindness) {
if (blindness == ColorBlindness.protanopia) return protanopia;
if (blindness == ColorBlindness.deuteranopia) return deuteranopia;
if (blindness == ColorBlindness.tritanopia) return tritanopia;
return null;
}
public static final ImageFilter protanopia = forProtanopia(null, true);
public static final ImageFilter deuteranopia = forDeuteranopia(null, true);
public static final ImageFilter tritanopia = forTritanopia(null, true);
@@ -3,6 +3,14 @@ package com.intellij.ide.ui;
import java.awt.image.ImageFilter;
final class SimulationFilter extends WeightFilter {
public static ImageFilter get(ColorBlindness blindness) {
if (blindness == ColorBlindness.protanopia) return protanopia;
if (blindness == ColorBlindness.deuteranopia) return deuteranopia;
if (blindness == ColorBlindness.tritanopia) return tritanopia;
if (blindness == ColorBlindness.achromatopsia) return achromatopsia;
return null;
}
public static final ImageFilter protanopia = forProtanopia(null);
public static final ImageFilter deuteranopia = forDeuteranopia(null);
public static final ImageFilter tritanopia = forTritanopia(null);
@@ -27,6 +27,7 @@ import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.SimpleModificationTracker;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.util.EventDispatcher;
import com.intellij.util.PlatformUtils;
import com.intellij.util.SystemProperties;
@@ -41,7 +42,6 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
import java.util.Map;
import static com.intellij.util.ui.UIUtil.isValidFont;
@@ -171,13 +171,9 @@ public class UISettings extends SimpleModificationTracker implements PersistentS
incModificationCount();
myDispatcher.getMulticaster().uiSettingsChanged(this);
ApplicationManager.getApplication().getMessageBus().syncPublisher(UISettingsListener.TOPIC).uiSettingsChanged(this);
IconLoader.setFilter(COLOR_BLINDNESS == ColorBlindness.protanopia
? DaltonizationFilter.protanopia
: COLOR_BLINDNESS == ColorBlindness.deuteranopia
? DaltonizationFilter.deuteranopia
: COLOR_BLINDNESS == ColorBlindness.tritanopia
? DaltonizationFilter.tritanopia
: null);
IconLoader.setFilter(Registry.is("color.blindness.daltonization")
? DaltonizationFilter.get(COLOR_BLINDNESS)
: MatrixFilter.get(COLOR_BLINDNESS));
}
public void removeUISettingsListener(UISettingsListener listener) {
@@ -43,6 +43,7 @@ actionSystem.enableAbbreviations=true
actionSystem.extendedKeyCode.disabled=false
color.blindness.icon.filter=false
color.blindness.daltonization=false
ide.debugMode=false