mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Breadcrumbs color settings [IDEA-CR-14449]
This commit is contained in:
@@ -66,4 +66,9 @@ public interface EditorColors {
|
||||
ColorKey BORDER_LINES_COLOR = ColorKey.createColorKey("BORDER_LINES_COLOR");
|
||||
|
||||
TextAttributesKey INJECTED_LANGUAGE_FRAGMENT = TextAttributesKey.createTextAttributesKey("INJECTED_LANGUAGE_FRAGMENT");
|
||||
|
||||
TextAttributesKey BREADCRUMBS_DEFAULT = TextAttributesKey.createTextAttributesKey("BREADCRUMBS_DEFAULT");
|
||||
TextAttributesKey BREADCRUMBS_HOVERED = TextAttributesKey.createTextAttributesKey("BREADCRUMBS_HOVERED");
|
||||
TextAttributesKey BREADCRUMBS_CURRENT = TextAttributesKey.createTextAttributesKey("BREADCRUMBS_CURRENT");
|
||||
TextAttributesKey BREADCRUMBS_INACTIVE = TextAttributesKey.createTextAttributesKey("BREADCRUMBS_INACTIVE");
|
||||
}
|
||||
|
||||
+6
-1
@@ -97,7 +97,12 @@ public class GeneralColorsPage implements ColorSettingsPage, InspectionColorSett
|
||||
new AttributesDescriptor(OptionsBundle.message("options.java.color.descriptor.full.coverage"), CodeInsightColors.LINE_FULL_COVERAGE),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.java.color.descriptor.partial.coverage"),
|
||||
CodeInsightColors.LINE_PARTIAL_COVERAGE),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.java.color.descriptor.none.coverage"), CodeInsightColors.LINE_NONE_COVERAGE)
|
||||
new AttributesDescriptor(OptionsBundle.message("options.java.color.descriptor.none.coverage"), CodeInsightColors.LINE_NONE_COVERAGE),
|
||||
|
||||
new AttributesDescriptor(OptionsBundle.message("options.general.color.descriptor.breadcrumbs.default"), EditorColors.BREADCRUMBS_DEFAULT),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.general.color.descriptor.breadcrumbs.hovered"), EditorColors.BREADCRUMBS_HOVERED),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.general.color.descriptor.breadcrumbs.current"), EditorColors.BREADCRUMBS_CURRENT),
|
||||
new AttributesDescriptor(OptionsBundle.message("options.general.color.descriptor.breadcrumbs.inactive"), EditorColors.BREADCRUMBS_INACTIVE)
|
||||
};
|
||||
|
||||
private static final ColorDescriptor[] COLOR_DESCRIPTORS = {
|
||||
|
||||
@@ -153,6 +153,10 @@ options.general.color.descriptor.reference.hyperlink=Hyperlinks//Reference
|
||||
options.general.color.descriptor.todo.defaults=Code//TODO defaults
|
||||
options.general.color.descriptor.bookmarks=Editor//Bookmarks
|
||||
options.general.color.soft.wrap.sign=Text//Soft wrap sign
|
||||
options.general.color.descriptor.breadcrumbs.default=Editor//Breadcrumbs//Default
|
||||
options.general.color.descriptor.breadcrumbs.hovered=Editor//Breadcrumbs//Hovered
|
||||
options.general.color.descriptor.breadcrumbs.current=Editor//Breadcrumbs//Current
|
||||
options.general.color.descriptor.breadcrumbs.inactive=Editor//Breadcrumbs//Inactive
|
||||
|
||||
|
||||
options.language.defaults.display.name=Language Defaults
|
||||
|
||||
@@ -58,19 +58,6 @@
|
||||
<option name="VCS_ANNOTATIONS_COLOR_3" value="d9e4f9"/>
|
||||
<option name="VCS_ANNOTATIONS_COLOR_4" value="fffbcf"/>
|
||||
<option name="VCS_ANNOTATIONS_COLOR_5" value="ffbfc3"/>
|
||||
|
||||
<option name="BREADCRUMBS_BACKGROUND" value="f5f5f5"/>
|
||||
<option name="BREADCRUMBS_BACKGROUND_HOVERED" value="dcdcdc"/>
|
||||
<option name="BREADCRUMBS_BACKGROUND_CURRENT" value="fafadc"/>
|
||||
<option name="BREADCRUMBS_BACKGROUND_INACTIVE" value="fdfdfd"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR" value="323232"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR_HOVERED" value="323232"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR_CURRENT" value="323232"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR_INACTIVE" value="aaaaaa"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR" value="aaaaaa"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR_HOVERED" value="aaaaaa"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR_CURRENT" value="aaaaaa"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR_INACTIVE" value="c8c8c8"/>
|
||||
</colors>
|
||||
|
||||
<attributes>
|
||||
@@ -1049,6 +1036,39 @@
|
||||
<option name="FOREGROUND" value="bc5150" />
|
||||
</value>
|
||||
</option>
|
||||
|
||||
<option name="BREADCRUMBS_DEFAULT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="323232"/>
|
||||
<option name="BACKGROUND" value="f5f5f5"/>
|
||||
<option name="EFFECT_COLOR" value="aaaaaa"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="BREADCRUMBS_HOVERED">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="323232"/>
|
||||
<option name="BACKGROUND" value="dcdcdc"/>
|
||||
<option name="EFFECT_COLOR" value="aaaaaa"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="BREADCRUMBS_CURRENT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="323232"/>
|
||||
<option name="BACKGROUND" value="fafadc"/>
|
||||
<option name="EFFECT_COLOR" value="aaaaaa"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="BREADCRUMBS_INACTIVE">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="aaaaaa"/>
|
||||
<option name="BACKGROUND" value="fdfdfd"/>
|
||||
<option name="EFFECT_COLOR" value="c8c8c8"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
</attributes>
|
||||
|
||||
</scheme>
|
||||
@@ -1105,19 +1125,6 @@
|
||||
<option name="VCS_ANNOTATIONS_COLOR_3" value="41444a"/>
|
||||
<option name="VCS_ANNOTATIONS_COLOR_4" value="484248"/>
|
||||
<option name="VCS_ANNOTATIONS_COLOR_5" value="4c393a"/>
|
||||
|
||||
<option name="BREADCRUMBS_BACKGROUND" value="65686a"/>
|
||||
<option name="BREADCRUMBS_BACKGROUND_HOVERED" value="797d7f"/>
|
||||
<option name="BREADCRUMBS_BACKGROUND_CURRENT" value="61614b"/>
|
||||
<option name="BREADCRUMBS_BACKGROUND_INACTIVE" value="828282"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR" value="bbbbbb"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR_HOVERED" value="bbbbbb"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR_CURRENT" value="bbbbbb"/>
|
||||
<option name="BREADCRUMBS_TEXT_COLOR_INACTIVE" value="bbbbbb"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR" value="323232"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR_HOVERED" value="323232"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR_CURRENT" value="323232"/>
|
||||
<option name="BREADCRUMBS_BORDER_COLOR_INACTIVE" value="464646"/>
|
||||
</colors>
|
||||
<attributes>
|
||||
<option name="ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES">
|
||||
@@ -2141,6 +2148,39 @@
|
||||
<option name="FOREGROUND" value="9d527c" />
|
||||
</value>
|
||||
</option>
|
||||
|
||||
<option name="BREADCRUMBS_DEFAULT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="bbbbbb"/>
|
||||
<option name="BACKGROUND" value="65686a"/>
|
||||
<option name="EFFECT_COLOR" value="323232"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="BREADCRUMBS_HOVERED">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="bbbbbb"/>
|
||||
<option name="BACKGROUND" value="797d7f"/>
|
||||
<option name="EFFECT_COLOR" value="323232"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="BREADCRUMBS_CURRENT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="bbbbbb"/>
|
||||
<option name="BACKGROUND" value="61614b"/>
|
||||
<option name="EFFECT_COLOR" value="323232"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="BREADCRUMBS_INACTIVE">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="bbbbbb"/>
|
||||
<option name="BACKGROUND" value="828282"/>
|
||||
<option name="EFFECT_COLOR" value="464646"/>
|
||||
<option name="EFFECT_TYPE" value="0"/>
|
||||
</value>
|
||||
</option>
|
||||
</attributes>
|
||||
</scheme>
|
||||
|
||||
|
||||
@@ -18,8 +18,10 @@ package com.intellij.xml.breadcrumbs;
|
||||
import com.intellij.ide.ui.UISettings;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.colors.ColorKey;
|
||||
import com.intellij.openapi.editor.colors.EditorColors;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
import com.intellij.openapi.editor.markup.TextAttributes;
|
||||
import com.intellij.openapi.util.Weighted;
|
||||
import com.intellij.ui.paint.RectanglePainter;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -40,26 +42,6 @@ import java.util.List;
|
||||
* @author spleaner
|
||||
*/
|
||||
public class BreadcrumbsComponent<T extends BreadcrumbsItem> extends JComponent implements Disposable, Weighted {
|
||||
private interface Background {
|
||||
ColorKey DEFAULT = ColorKey.createColorKey("BREADCRUMBS_BACKGROUND");
|
||||
ColorKey HOVERED = ColorKey.createColorKey("BREADCRUMBS_BACKGROUND_HOVERED");
|
||||
ColorKey CURRENT = ColorKey.createColorKey("BREADCRUMBS_BACKGROUND_CURRENT");
|
||||
ColorKey INACTIVE = ColorKey.createColorKey("BREADCRUMBS_BACKGROUND_INACTIVE");
|
||||
}
|
||||
|
||||
private interface TextColor {
|
||||
ColorKey DEFAULT = ColorKey.createColorKey("BREADCRUMBS_TEXT_COLOR");
|
||||
ColorKey HOVERED = ColorKey.createColorKey("BREADCRUMBS_TEXT_COLOR_HOVERED");
|
||||
ColorKey CURRENT = ColorKey.createColorKey("BREADCRUMBS_TEXT_COLOR_CURRENT");
|
||||
ColorKey INACTIVE = ColorKey.createColorKey("BREADCRUMBS_TEXT_COLOR_INACTIVE");
|
||||
}
|
||||
|
||||
private interface BorderColor {
|
||||
ColorKey DEFAULT = ColorKey.createColorKey("BREADCRUMBS_BORDER_COLOR");
|
||||
ColorKey HOVERED = ColorKey.createColorKey("BREADCRUMBS_BORDER_COLOR_HOVERED");
|
||||
ColorKey CURRENT = ColorKey.createColorKey("BREADCRUMBS_BORDER_COLOR_CURRENT");
|
||||
ColorKey INACTIVE = ColorKey.createColorKey("BREADCRUMBS_BORDER_COLOR_INACTIVE");
|
||||
}
|
||||
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.xml.breadcrumbs.BreadcrumbsComponent");
|
||||
private static final Painter DEFAULT_PAINTER = new DefaultPainter(new ButtonSettings());
|
||||
@@ -622,17 +604,17 @@ public class BreadcrumbsComponent<T extends BreadcrumbsItem> extends JComponent
|
||||
abstract static class PainterSettings {
|
||||
@Nullable
|
||||
Color getBackgroundColor(@NotNull final Crumb c) {
|
||||
return getColor(c, Background.DEFAULT, Background.HOVERED, Background.CURRENT, Background.INACTIVE);
|
||||
return getAttributes(c).getBackgroundColor();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
Color getForegroundColor(@NotNull final Crumb c) {
|
||||
return getColor(c, TextColor.DEFAULT, TextColor.HOVERED, TextColor.CURRENT, TextColor.INACTIVE);
|
||||
return getAttributes(c).getForegroundColor();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
Color getBorderColor(@NotNull final Crumb c) {
|
||||
return getColor(c, BorderColor.DEFAULT, BorderColor.HOVERED, BorderColor.CURRENT, BorderColor.INACTIVE);
|
||||
return getAttributes(c).getEffectColor();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -640,28 +622,34 @@ public class BreadcrumbsComponent<T extends BreadcrumbsItem> extends JComponent
|
||||
return null;
|
||||
}
|
||||
|
||||
static Color getColor(Crumb c, ColorKey main, ColorKey hovered, ColorKey current, ColorKey inactive) {
|
||||
return EditorColorsManager.getInstance().getGlobalScheme().getColor(
|
||||
@NotNull
|
||||
static TextAttributesKey getKey(Crumb c) {
|
||||
return
|
||||
c.isHovered()
|
||||
? hovered
|
||||
? EditorColors.BREADCRUMBS_HOVERED
|
||||
: c.isSelected()
|
||||
? current
|
||||
? EditorColors.BREADCRUMBS_CURRENT
|
||||
: c.isLight() && !(c instanceof NavigationCrumb)
|
||||
? inactive
|
||||
: main);
|
||||
? EditorColors.BREADCRUMBS_INACTIVE
|
||||
: EditorColors.BREADCRUMBS_DEFAULT;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static TextAttributes getAttributes(Crumb c) {
|
||||
return EditorColorsManager.getInstance().getGlobalScheme().getAttributes(getKey(c));
|
||||
}
|
||||
}
|
||||
|
||||
static class ButtonSettings extends PainterSettings {
|
||||
static Color getBackgroundColor(boolean selected, boolean hovered, boolean light, boolean navigationCrumb) {
|
||||
return EditorColorsManager.getInstance().getGlobalScheme().getColor(
|
||||
return EditorColorsManager.getInstance().getGlobalScheme().getAttributes(
|
||||
hovered
|
||||
? Background.HOVERED
|
||||
? EditorColors.BREADCRUMBS_HOVERED
|
||||
: selected
|
||||
? Background.CURRENT
|
||||
? EditorColors.BREADCRUMBS_CURRENT
|
||||
: light && !navigationCrumb
|
||||
? Background.INACTIVE
|
||||
: Background.DEFAULT);
|
||||
? EditorColors.BREADCRUMBS_INACTIVE
|
||||
: EditorColors.BREADCRUMBS_DEFAULT).getBackgroundColor();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user