diff --git a/cnd.completion/nbproject/project.xml b/cnd.completion/nbproject/project.xml index b6bd87e..81c18d2 100644 --- a/cnd.completion/nbproject/project.xml +++ b/cnd.completion/nbproject/project.xml @@ -181,6 +181,14 @@ + org.netbeans.swing.plaf + + + + 1.23.1 + + + org.openide.awt diff --git a/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CsmResultItem.java b/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CsmResultItem.java index 6a0b6e7..7204c47 100644 --- a/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CsmResultItem.java +++ b/cnd.completion/src/org/netbeans/modules/cnd/completion/cplusplus/ext/CsmResultItem.java @@ -101,7 +101,7 @@ import org.netbeans.modules.cnd.modelutil.ParamStr; import org.netbeans.spi.editor.completion.CompletionItem; import org.netbeans.spi.editor.completion.CompletionTask; import org.openide.util.Lookup; - +import org.netbeans.swing.plaf.LFCustoms; /** * * @author Vladimir Voskresensky @@ -120,8 +120,7 @@ public abstract class CsmResultItem implements CompletionItem { protected int selectionEndOffset = -1; protected int substituteOffset = -1; CsmObject associatedObject; - private static final Color KEYWORD_COLOR = Color.gray; - private static final Color TYPE_COLOR = Color.black; + private static final Color KEYWORD_COLOR = Color.lightGray; private int priority; private SubstitutionHint hint; @@ -145,7 +144,7 @@ public abstract class CsmResultItem implements CompletionItem { } protected static Color getTypeColor(CsmType type) { - return type.isBuiltInBased(false) ? KEYWORD_COLOR : TYPE_COLOR; + return type.isBuiltInBased(false) ? LFCustoms.shiftColor(KEYWORD_COLOR) : LFCustoms.getTextFgColor(); } public void setSubstituteOffset(int substituteOffset) { @@ -949,11 +948,11 @@ public abstract class CsmResultItem implements CompletionItem { if (type == null) { // only var args parameters could have null types assert (((CsmParameter) prm).isVarArgs()); - params.add(new ParamStr("", "", ((CsmParameter) prm).getName().toString(), true, KEYWORD_COLOR)); //NOI18N + params.add(new ParamStr("", "", ((CsmParameter) prm).getName().toString(), true, LFCustoms.shiftColor(KEYWORD_COLOR))); //NOI18N varArgIndex = i; } else { String typeName = getTypeName(type, instantiateTypes); - params.add(new ParamStr(typeName, typeName, ((CsmParameter) prm).getName().toString(), false, TYPE_COLOR /*getTypeColor(type.getClassifier())*/)); + params.add(new ParamStr(typeName, typeName, ((CsmParameter) prm).getName().toString(), false, LFCustoms.getTextFgColor() /*getTypeColor(type.getClassifier())*/)); } i++; } diff --git a/cnd.modelutil/nbproject/project.xml b/cnd.modelutil/nbproject/project.xml index 15f7e55..40b1ce0 100644 --- a/cnd.modelutil/nbproject/project.xml +++ b/cnd.modelutil/nbproject/project.xml @@ -86,6 +86,14 @@ + org.netbeans.swing.plaf + + + + 1.23.1 + + + org.openide.awt diff --git a/cnd.modelutil/src/org/netbeans/modules/cnd/modelutil/CsmPaintComponent.java b/cnd.modelutil/src/org/netbeans/modules/cnd/modelutil/CsmPaintComponent.java index a0b8520..e875486 100644 --- a/cnd.modelutil/src/org/netbeans/modules/cnd/modelutil/CsmPaintComponent.java +++ b/cnd.modelutil/src/org/netbeans/modules/cnd/modelutil/CsmPaintComponent.java @@ -63,7 +63,7 @@ import java.util.List; import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JPanel; - +import org.netbeans.swing.plaf.LFCustoms; /** * @@ -101,9 +101,8 @@ public abstract class CsmPaintComponent extends JPanel { "", " ", "[]", "(", ")", ", ", "String", THROWS // NOI18N }; - private static final Color KEYWORD_COLOR = Color.darkGray; - private static final Color TYPE_COLOR = Color.black; - private static final Color POSTFIX_COLOR = Color.gray; + private final static Color KEYWORD_COLOR = Color.gray; + private final static Color POSTFIX_COLOR = Color.lightGray; private Icon icon; @@ -128,21 +127,22 @@ public abstract class CsmPaintComponent extends JPanel { @Override public void paintComponent(Graphics g) { // clear background + Color postfixColor = LFCustoms.shiftColor(POSTFIX_COLOR); g.setColor(getBackground()); java.awt.Rectangle r = g.getClipBounds(); g.fillRect(r.x, r.y, r.width, r.height); draw(g); if(!postfixes.isEmpty()) { - drawString(g, " (", POSTFIX_COLOR); // NOI18N + drawString(g, " (", postfixColor); // NOI18N Iterator iter = postfixes.iterator(); while(iter.hasNext()) { ((PostfixString) iter.next()).Draw(g); if(iter.hasNext()) { - drawString(g, ", ", POSTFIX_COLOR); // NOI18N + drawString(g, ", ", postfixColor); // NOI18N } } - drawString(g, ")", POSTFIX_COLOR); // NOI18N + drawString(g, ")", postfixColor); // NOI18N } } @@ -372,7 +372,7 @@ public abstract class CsmPaintComponent extends JPanel { } public PostfixString(String text, int fontStyle) { - this(text, CsmPaintComponent.POSTFIX_COLOR, fontStyle); + this(text, LFCustoms.shiftColor(CsmPaintComponent.POSTFIX_COLOR), fontStyle); } void Draw(Graphics g) { @@ -397,7 +397,7 @@ public abstract class CsmPaintComponent extends JPanel { private String pkgName; private boolean displayFullNamespacePath; - private Color NAMESPACE_COLOR = Color.green.darker().darker().darker(); + private Color NAMESPACE_COLOR = LFCustoms.shiftColor(new Color(64,255,64)); public NamespacePaintComponent(){ super(); @@ -434,7 +434,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class NamespaceAliasPaintComponent extends CsmPaintComponent{ private String aliasName; - private Color NAMESPACE_COLOR = Color.green.darker().darker().darker(); + private Color NAMESPACE_COLOR = LFCustoms.shiftColor(new Color(64,255,64)); public NamespaceAliasPaintComponent(){ super(); @@ -463,7 +463,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class EnumPaintComponent extends CsmPaintComponent { String formatEnumName; - private Color ENUM_COLOR = Color.red.darker().darker().darker().darker(); + private Color ENUM_COLOR = LFCustoms.shiftColor(new Color(255,64,64)); private boolean displayFQN; public void EnumPaintComponent(String formatEnumName){ @@ -498,7 +498,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class EnumeratorPaintComponent extends CsmPaintComponent { String formatEnumeratorName; - private Color ENUMERATOR_COLOR = Color.blue.darker().darker().darker().darker(); + private Color ENUMERATOR_COLOR = LFCustoms.shiftColor(new Color(64,64,255)); private boolean displayFQN; public void EnumeratorPaintComponent(String formatEnumeratorName){ @@ -534,7 +534,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class ClassPaintComponent extends CsmPaintComponent{ String formatClassName; - private Color CLASS_COLOR = Color.red.darker().darker().darker(); + private Color CLASS_COLOR = LFCustoms.shiftColor(new Color(255,64,64)); private boolean displayFQN; public void setFormatClassName(String formatClassName){ @@ -566,7 +566,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class TypedefPaintComponent extends CsmPaintComponent{ String formatTypedefName; - private final Color TYPEDEF_COLOR = CsmFontColorManager.instance().getColor(FontColorProvider.Entity.TYPEDEF); //Color.blue.darker().darker().darker(); + private final Color TYPEDEF_COLOR = CsmFontColorManager.instance().getColor(FontColorProvider.Entity.TYPEDEF); //new Color(64,64,255).darker().darker().darker(); //private boolean displayFQN; public void setFormatTypedefName(String formatTypedefName){ @@ -597,7 +597,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class StructPaintComponent extends ClassPaintComponent{ - private Color STRUCT_COLOR = Color.red.darker().darker(); + private Color STRUCT_COLOR = LFCustoms.shiftColor(new Color(255,64,64)); @Override protected Color getColor(){ @@ -611,7 +611,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class UnionPaintComponent extends ClassPaintComponent{ - private Color UNION_COLOR = Color.red.darker(); + private Color UNION_COLOR = LFCustoms.shiftColor(new Color(255,64,64)); @Override protected Color getColor(){ @@ -624,7 +624,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class FieldPaintComponent extends CsmPaintComponent{ - private Color FIELD_COLOR = CsmFontColorManager.instance().getColor(FontColorProvider.Entity.CLASS_FIELD);//Color.blue.darker(); + private Color FIELD_COLOR = CsmFontColorManager.instance().getColor(FontColorProvider.Entity.CLASS_FIELD);//new Color(64,64,255).darker(); protected String typeName; protected Color typeColor; protected String fldName; @@ -706,7 +706,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class LocalVariablePaintComponent extends FieldPaintComponent { - private Color VARIABLE_COLOR = Color.red.darker().darker().darker(); + private Color VARIABLE_COLOR = LFCustoms.shiftColor(new Color(255,64,64)); public LocalVariablePaintComponent(){ super(); @@ -725,7 +725,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class FileLocalVariablePaintComponent extends FieldPaintComponent { - private Color VARIABLE_COLOR = Color.blue.darker().darker().darker(); + private Color VARIABLE_COLOR = LFCustoms.shiftColor(new Color(64,64,255)); public FileLocalVariablePaintComponent(){ super(); @@ -738,7 +738,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class GlobalVariablePaintComponent extends FieldPaintComponent { - private Color VARIABLE_COLOR = Color.blue.darker().darker().darker(); + private Color VARIABLE_COLOR = LFCustoms.shiftColor(new Color(64,64,255)); public GlobalVariablePaintComponent(){ super(); @@ -751,8 +751,8 @@ public abstract class CsmPaintComponent extends JPanel { } public static class MacroPaintComponent extends CsmPaintComponent{ - private Color MACRO_NAME_COLOR = CsmFontColorManager.instance().getColor(FontColorProvider.Entity.DEFINED_MACRO);//Color.green.darker().darker(); - private Color MACRO_PARAMETER_NAME_COLOR = new Color(163, 102, 10);//Color.magenta.darker(); + private Color MACRO_NAME_COLOR = CsmFontColorManager.instance().getColor(FontColorProvider.Entity.DEFINED_MACRO);//new Color(64,255,64).darker().darker(); + private Color MACRO_PARAMETER_NAME_COLOR = LFCustoms.shiftColor(new Color(227, 166, 74));//Color.magenta.darker(); private List params = null; private String name; @@ -832,7 +832,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class TemplateParameterPaintComponent extends CsmPaintComponent{ - private Color PARAMETER_NAME_COLOR = Color.BLACK.darker().darker(); + private Color PARAMETER_NAME_COLOR = LFCustoms.getTextFgColor(); private List params = null; private String name; @@ -879,7 +879,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class LabelPaintComponent extends CsmPaintComponent { - private Color LABEL_NAME_COLOR = Color.BLACK.darker().darker(); + private Color LABEL_NAME_COLOR = LFCustoms.getTextFgColor(); private List params = null; private String name; @@ -927,8 +927,8 @@ public abstract class CsmPaintComponent extends JPanel { public static class ConstructorPaintComponent extends CsmPaintComponent{ - private Color CONSTRUCTOR_COLOR = Color.orange.darker().darker(); - private Color PARAMETER_NAME_COLOR = new Color(163, 102, 10);//Color.magenta.darker(); + private Color CONSTRUCTOR_COLOR = LFCustoms.shiftColor(Color.orange); + private Color PARAMETER_NAME_COLOR = LFCustoms.shiftColor(new Color(227, 166, 74));//Color.magenta.darker(); private List params = new ArrayList(); private List excs = new ArrayList(); private String name; @@ -1000,7 +1000,7 @@ public abstract class CsmPaintComponent extends JPanel { protected void drawExceptions(Graphics g, List exc, boolean strike) { if (exc.size() > 0) { - drawString(g, THROWS, KEYWORD_COLOR, null, strike); + drawString(g, THROWS, LFCustoms.shiftColor(KEYWORD_COLOR), null, strike); for (Iterator it = exc.iterator(); it.hasNext();) { ExceptionStr ex = (ExceptionStr) it.next(); drawString(g, ex.getName(), ex.getTypeColor(), null, strike); @@ -1084,7 +1084,7 @@ public abstract class CsmPaintComponent extends JPanel { public static class MethodPaintComponent extends ConstructorPaintComponent { //private Color PARAMETER_NAME_COLOR = Color.magenta.darker(); - private Color METHOD_COLOR = Color.black;//red.darker().darker(); + private Color METHOD_COLOR = LFCustoms.getTextFgColor(); private String typeName; private Color typeColor; private boolean drawTypeAsPrefix = false; @@ -1169,7 +1169,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class FileLocalFunctionPaintComponent extends MethodPaintComponent { - private Color FUN_COLOR = Color.black;//red.darker().darker(); + private Color FUN_COLOR = LFCustoms.getTextFgColor(); public FileLocalFunctionPaintComponent(){ super(); @@ -1182,7 +1182,7 @@ public abstract class CsmPaintComponent extends JPanel { } public static class GlobalFunctionPaintComponent extends MethodPaintComponent { - private Color FUN_COLOR = Color.black;//.red.darker().darker(); + private Color FUN_COLOR = LFCustoms.getTextFgColor(); public GlobalFunctionPaintComponent(){ super(); @@ -1253,7 +1253,7 @@ public abstract class CsmPaintComponent extends JPanel { protected void draw(Graphics g){ drawIcon(g, null); - drawString(g, str, TYPE_COLOR); + drawString(g, str, LFCustoms.getTextFgColor()); } public String toString() { diff --git a/java.editor/nbproject/project.xml b/java.editor/nbproject/project.xml index d578012..81b36be 100644 --- a/java.editor/nbproject/project.xml +++ b/java.editor/nbproject/project.xml @@ -328,6 +328,14 @@ made subject to such option by the copyright holder. + org.netbeans.swing.plaf + + + + 1.23.1 + + + org.openide.awt diff --git a/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java b/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java index ac517fb..2961ec3 100644 --- a/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java +++ b/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java @@ -94,6 +94,7 @@ import org.openide.util.Exceptions; import org.openide.util.ImageUtilities; import org.openide.util.NbBundle; import org.openide.xml.XMLUtil; +import org.netbeans.swing.plaf.LFCustoms; /** * @@ -1054,7 +1055,6 @@ public abstract class JavaCompletionItem implements CompletionItem { static class TypeParameterItem extends JavaCompletionItem { - private static final String TYPE_PARAMETER_COLOR = ""; //NOI18N private String simpleName; private String leftText; @@ -1078,7 +1078,7 @@ public abstract class JavaCompletionItem implements CompletionItem { protected String getLeftHtmlText() { if (leftText == null) - leftText = TYPE_PARAMETER_COLOR + simpleName + COLOR_END; + leftText = LFCustoms.getTextFgColorHTML() + simpleName + COLOR_END; return leftText; } @@ -1382,7 +1382,6 @@ public abstract class JavaCompletionItem implements CompletionItem { private static final String METHOD_ST_PROTECTED = "org/netbeans/modules/editor/resources/completion/method_static_protected_16.png"; //NOI18N private static final String METHOD_ST_PRIVATE = "org/netbeans/modules/editor/resources/completion/method_static_private_16.png"; //NOI18N private static final String METHOD_ST_PACKAGE = "org/netbeans/modules/editor/resources/completion/method_static_package_private_16.png"; //NOI18N - private static final String METHOD_COLOR = ""; //NOI18N private static final String PARAMETER_NAME_COLOR = ""; //NOI18N private static ImageIcon icon[][] = new ImageIcon[2][4]; @@ -1464,7 +1463,7 @@ public abstract class JavaCompletionItem implements CompletionItem { protected String getLeftHtmlText() { if (leftText == null) { StringBuilder lText = new StringBuilder(); - lText.append(METHOD_COLOR); + lText.append(LFCustoms.getTextFgColorHTML()); if (!isInherited) lText.append(BOLD); if (isDeprecated || isBlackListed()) @@ -1747,7 +1746,7 @@ public abstract class JavaCompletionItem implements CompletionItem { return sb.toString(); } } - + static class OverrideMethodItem extends MethodItem { private static final String IMPL_BADGE_PATH = "org/netbeans/modules/java/editor/resources/implement_badge.png"; @@ -1868,7 +1867,6 @@ public abstract class JavaCompletionItem implements CompletionItem { private static final String METHOD_PUBLIC = "org/netbeans/modules/editor/resources/completion/method_16.png"; //NOI18N private static final String GETTER_BADGE_PATH = "org/netbeans/modules/java/editor/resources/getter_badge.png"; //NOI18N private static final String SETTER_BADGE_PATH = "org/netbeans/modules/java/editor/resources/setter_badge.png"; //NOI18N - private static final String METHOD_COLOR = ""; //NOI18N private static final String PARAMETER_NAME_COLOR = ""; //NOI18N private static ImageIcon superIcon; @@ -1919,7 +1917,7 @@ public abstract class JavaCompletionItem implements CompletionItem { protected String getLeftHtmlText() { if (leftText == null) { StringBuilder lText = new StringBuilder(); - lText.append(METHOD_COLOR); + lText.append(LFCustoms.getTextFgColorHTML()); lText.append(BOLD); lText.append(name); lText.append(BOLD_END); @@ -2493,7 +2491,6 @@ public abstract class JavaCompletionItem implements CompletionItem { static class ParametersItem extends JavaCompletionItem { private static final String PARAMETERS_COLOR = ""; //NOI18N - private static final String ACTIVE_PARAMETER_COLOR = ""; //NOI18N protected ElementHandle elementHandle; private boolean isDeprecated; @@ -2564,7 +2561,7 @@ public abstract class JavaCompletionItem implements CompletionItem { for (int i = 0; i < params.size(); i++) { ParamDesc paramDesc = params.get(i); if (i == activeParamsIndex) - lText.append(COLOR_END).append(ACTIVE_PARAMETER_COLOR).append(BOLD); + lText.append(COLOR_END).append(LFCustoms.getTextFgColorHTML()).append(BOLD); lText.append(escape(paramDesc.typeName)); lText.append(' '); lText.append(paramDesc.name); diff --git a/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java b/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java index f541bdf..702c7fa 100644 --- a/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java +++ b/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java @@ -44,6 +44,10 @@ package org.netbeans.swing.plaf; +import java.awt.Color; +import javax.swing.UIManager; +import javax.swing.plaf.ColorUIResource; + /** Look and feel customizations interface. * For various look and feels, there is a need to customize colors, * borders etc. to provide 'native-like' UI. @@ -78,6 +82,66 @@ public abstract class LFCustoms { private Object[] guaranteedKeysAndValues = null; protected static final String WORKPLACE_FILL = "nb_workplace_fill"; //NOI18N + public static String getHexString(int color) { + String result = Integer.toHexString(color).toUpperCase(); + if (result.length() == 1) { + return '0'+result; + } + return result; + } + private static String textFgColorHTML = ""; + public static String getTextFgColorHTML() { + synchronized(LFCustoms.class) { + if (textFgColorHTML.isEmpty()) { + Object o = UIManager.getLookAndFeel().getDefaults().get("windowText"); + if (o instanceof ColorUIResource) { + ColorUIResource resource = (ColorUIResource)o; + textFgColorHTML = ""; + } else { + textFgColorHTML = ""; + } + } + return textFgColorHTML; + } + } + private static Color textFgColor = null; + public static Color getTextFgColor() { + synchronized(LFCustoms.class) { + if (textFgColor == null) { + Object o = UIManager.getLookAndFeel().getDefaults().get("windowText"); + if (o instanceof ColorUIResource) { + textFgColor = (Color) o; + } else { + textFgColor = Color.BLACK; + } + } + return textFgColor; + } + } + public static final int shiftValue = 64; + static int brighter (int color) { + int result = color + shiftValue; + if (result > 255) { + return 255; + } else { + return result; + } + } + static int darker(int color) { + int result = color - shiftValue; + if (result < 0) { + return 0; + } else { + return result; + } + } + public static Color shiftColor(Color color) { + Color textFgColor = getTextFgColor(); + if ((textFgColor.getRed() > 127) || (textFgColor.getGreen() > 127) || (textFgColor.getBlue() > 127)) { + return new Color(brighter(color.getRed()), brighter(color.getGreen()), brighter(color.getBlue())); + } + return new Color(darker(color.getRed()), darker(color.getGreen()), darker(color.getBlue())); + } //TODO: A nice idea would be to replace these classes with XML files - minor rewrite of NbTheme to do it /** Fetch and cache keys and values */