diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java index b92d25e3295e..14e44f5f54f1 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java @@ -76,12 +76,12 @@ public class int _height = effectiveBounds.height - insets.top - insets.bottom - 3; _height -= TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT; if (dark) { - g2d.setPaint(new GradientPaint(_x, _y, ColorUtil.shift(UIUtil.getListBackground(), 1.3), _x, _y + effectiveBounds.height, UIUtil.getPanelBackground())); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, ColorUtil.shift(UIUtil.getListBackground(), 1.3), _x, _y + effectiveBounds.height, UIUtil.getPanelBackground())); g2d.fillRect(_x, _y, _width, _height); g2d.setColor(Gray._0.withAlpha(50)); } else { - g2d.setPaint(new GradientPaint(_x, _y, new Color(255, 255, 255, 180), _x, _y + effectiveBounds.height, new Color(255, 255, 255, 100))); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, new Color(255, 255, 255, 180), _x, _y + effectiveBounds.height, new Color(255, 255, 255, 100))); g2d.fillRect(_x, _y, _width, _height); g2d.setColor(new Color(255, 255, 255, 100)); @@ -152,7 +152,7 @@ public class int _height = r.height; if (!isHideTabs()) { - g2d.setPaint(new GradientPaint(_x, _y, col, _x, _y + _height - 3, panelBg)); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, col, _x, _y + _height - 3, panelBg)); g2d.fill(selectedShape.fillPath.getShape()); diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ui/AbstractNavBarUI.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ui/AbstractNavBarUI.java index e40e5b6c8767..c6ce5bb2809d 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ui/AbstractNavBarUI.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/ui/AbstractNavBarUI.java @@ -131,7 +131,7 @@ public abstract class AbstractNavBarUI implements NavBarUI { BufferedImage result = UIUtil.createImage(w, h, BufferedImage.TYPE_INT_ARGB); Color defaultBg = UIUtil.isUnderDarcula() ? Gray._100 : Color.WHITE; - final Paint bg = floating ? defaultBg : new GradientPaint(0, 0, new Color(255, 255, 255, 30), 0, h, new Color(255, 255, 255, 10)); + final Paint bg = floating ? defaultBg : UIUtil.getGradientPaint(0, 0, new Color(255, 255, 255, 30), 0, h, new Color(255, 255, 255, 10)); final Color selection = UIUtil.getListSelectionBackground(); Graphics2D g2 = result.createGraphics(); @@ -237,12 +237,12 @@ public abstract class AbstractNavBarUI implements NavBarUI { g2d.setColor(c); if (gradient) { - g2d.setPaint(new GradientPaint(0, 0, ColorUtil.toAlpha(c, 10), 0, h / 2, c)); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, ColorUtil.toAlpha(c, 10), 0, h / 2, c)); } g2d.drawLine(0, 0, off, h / 2); if (gradient) { - g2d.setPaint(new GradientPaint(0, h / 2, c, 0, h, ColorUtil.toAlpha(c, 10))); + g2d.setPaint(UIUtil.getGradientPaint(0, h / 2, c, 0, h, ColorUtil.toAlpha(c, 10))); } g2d.drawLine(off, h / 2, 0, h); @@ -251,13 +251,13 @@ public abstract class AbstractNavBarUI implements NavBarUI { g2d.setColor(light); if (gradient) { - g2d.setPaint(new GradientPaint(0, 0, ColorUtil.toAlpha(light, 10), 0, h / 2, light)); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, ColorUtil.toAlpha(light, 10), 0, h / 2, light)); } g2d.drawLine(0, 0, off, h / 2); if (gradient) { - g2d.setPaint(new GradientPaint(0, h / 2, light, 0, h, ColorUtil.toAlpha(light, 10))); + g2d.setPaint(UIUtil.getGradientPaint(0, h / 2, light, 0, h, ColorUtil.toAlpha(light, 10))); } g2d.drawLine(off, h / 2, 0, h); } diff --git a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java index 920532158bd0..8c3dd81c3654 100644 --- a/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java +++ b/platform/platform-api/src/com/intellij/openapi/actionSystem/ex/ComboBoxAction.java @@ -360,25 +360,25 @@ public abstract class ComboBoxAction extends AnAction implements CustomComponent final int w = getWidth(); final int h = getHeight(); if (getModel().isArmed() && getModel().isPressed()) { - g2.setPaint(new GradientPaint(0, 0, UIUtil.getControlColor(), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.8))); + g2.setPaint(UIUtil.getGradientPaint(0, 0, UIUtil.getControlColor(), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.8))); } else { g2.setPaint( - new GradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.1), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.9))); + UIUtil.getGradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.1), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 0.9))); } g2.fillRect(2, 0, w - 2, h); GraphicsUtil.setupAntialiasing(g2); if (!UIUtil.isUnderDarcula()) { if (!myMouseInside) { - g2.setPaint(new GradientPaint(0, 0, UIUtil.getBorderColor(), 0, h, UIUtil.getBorderColor().darker())); + g2.setPaint(UIUtil.getGradientPaint(0, 0, UIUtil.getBorderColor(), 0, h, UIUtil.getBorderColor().darker())); } else { - g2.setPaint(new GradientPaint(0, 0, UIUtil.getBorderColor().darker(), 0, h, UIUtil.getBorderColor().darker().darker())); + g2.setPaint(UIUtil.getGradientPaint(0, 0, UIUtil.getBorderColor().darker(), 0, h, UIUtil.getBorderColor().darker().darker())); } } else { if (!myMouseInside) { - g2.setPaint(new GradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.2), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 1.3))); + g2.setPaint(UIUtil.getGradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.2), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 1.3))); } else { - g2.setPaint(new GradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.4), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 1.5))); + g2.setPaint(UIUtil.getGradientPaint(0, 0, ColorUtil.shift(UIUtil.getControlColor(), 1.4), 0, h, ColorUtil.shift(UIUtil.getControlColor(), 1.5))); } } diff --git a/platform/platform-api/src/com/intellij/openapi/wm/StatusBarWidget.java b/platform/platform-api/src/com/intellij/openapi/wm/StatusBarWidget.java index 90d0fddd5347..0e99e1bb71c7 100644 --- a/platform/platform-api/src/com/intellij/openapi/wm/StatusBarWidget.java +++ b/platform/platform-api/src/com/intellij/openapi/wm/StatusBarWidget.java @@ -103,10 +103,10 @@ public interface StatusBarWidget extends Disposable { if (SystemInfo.isMac) { final Window window = SwingUtilities.getWindowAncestor(c); if (window != null && window.isActive()) { - g2.setPaint(new GradientPaint(0, 0, LEFT1_FROM, 0, height, LEFT1_TO)); + g2.setPaint(UIUtil.getGradientPaint(0, 0, LEFT1_FROM, 0, height, LEFT1_TO)); g2.drawLine(x, y, x, y + height); - g2.setPaint(new GradientPaint(0, 0, LEFT2_FROM, 0, height, LEFT2_TO)); + g2.setPaint(UIUtil.getGradientPaint(0, 0, LEFT2_FROM, 0, height, LEFT2_TO)); g2.drawLine(x + 1, y, x + 1, y + height); g2.setColor(PIXEL); @@ -116,7 +116,7 @@ public interface StatusBarWidget extends Disposable { g2.drawLine(x + 2, y, x + width - 2, y); } else { - g2.setPaint(new GradientPaint(0, 0, LEFT1_FROM_INACTIVE, 0, height, LEFT1_TO_INACTIVE)); + g2.setPaint(UIUtil.getGradientPaint(0, 0, LEFT1_FROM_INACTIVE, 0, height, LEFT1_TO_INACTIVE)); g2.drawLine(x, y, x, y + height); } } else { diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java index fcd59f9dd375..cf9c00d59cd9 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java @@ -58,7 +58,7 @@ class DarculaEditorTabsPainter implements JBEditorTabsPainter { final int x = rectangle.x; final int y = rectangle.y; final int h = rectangle.height; - g.setPaint(new GradientPaint(x, y, Gray._78.withAlpha(160), x, y + h, Gray._78.withAlpha(120))); + g.setPaint(UIUtil.getGradientPaint(x, y, Gray._78.withAlpha(160), x, y + h, Gray._78.withAlpha(120))); final int w = rectangle.width; g.fillRect(x, rectangle.y, w, h + (vertical ? 1 : 0)); @@ -96,9 +96,9 @@ class DarculaEditorTabsPainter implements JBEditorTabsPainter { g2d.setColor(tabColor); g2d.fill(selectedShape.fillPath.getShape()); - g2d.setPaint(new GradientPaint(_x, _y, Gray._255.withAlpha(50), _x, _y + _height, Gray._255.withAlpha(0))); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, Gray._255.withAlpha(50), _x, _y + _height, Gray._255.withAlpha(0))); } else { - g2d.setPaint(new GradientPaint(_x, _y, Gray._85, _x, _y + _height, Gray._60)); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, Gray._85, _x, _y + _height, Gray._60)); } g2d.fill(selectedShape.fillPath.getShape()); diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java index 6a70ac5ec643..2f7b37ae2427 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java @@ -40,13 +40,13 @@ public class DefaultEditorTabsPainter implements JBEditorTabsPainter { int column, boolean vertical) { if (tabColor != null) { - g2d.setPaint(new GradientPaint(x, y, Gray._200, x, y + effectiveBounds.height, Gray._130)); + g2d.setPaint(UIUtil.getGradientPaint(x, y, Gray._200, x, y + effectiveBounds.height, Gray._130)); g2d.fillRect(x, y, w, h); g2d.setColor(ColorUtil.toAlpha(tabColor, 150)); g2d.fillRect(x, y, w, h); } else { - g2d.setPaint(new GradientPaint(x, y, Gray._255.withAlpha(180), x, y + effectiveBounds.height, Gray._255.withAlpha(100))); + g2d.setPaint(UIUtil.getGradientPaint(x, y, Gray._255.withAlpha(180), x, y + effectiveBounds.height, Gray._255.withAlpha(100))); g2d.fillRect(x, y, w, h); } @@ -68,7 +68,7 @@ public class DefaultEditorTabsPainter implements JBEditorTabsPainter { private static void drawShadow(Graphics2D g, int x, int w, int shadowBottom) { int shadowTop = shadowBottom - ACTIVE_TAB_SHADOW_HEIGHT; - g.setPaint(new GradientPaint(x, shadowTop, new Color(0, 0, 0, 0), + g.setPaint(UIUtil.getGradientPaint(x, shadowTop, new Color(0, 0, 0, 0), x, shadowBottom, new Color(0, 0, 0, 30))); g.fillRect(x, shadowTop, w, ACTIVE_TAB_SHADOW_HEIGHT); } @@ -83,7 +83,7 @@ public class DefaultEditorTabsPainter implements JBEditorTabsPainter { final int x = rectangle.x; final int y = rectangle.y; - g.setPaint(new GradientPaint(x, y, new Color(255, 255, 255, 160), + g.setPaint(UIUtil.getGradientPaint(x, y, new Color(255, 255, 255, 160), x, rectangle.y + rectangle.height, new Color(255, 255, 255, 120))); g.fillRect(x, rectangle.y, rectangle.width, rectangle.height + (vertical ? 1 : 0)); @@ -127,9 +127,9 @@ public class DefaultEditorTabsPainter implements JBEditorTabsPainter { g2d.setColor(multiplyColor(tabColor)); g2d.fill(selectedShape.fillPath.getShape()); - g2d.setPaint(new GradientPaint(_x, _y, Gray._255.withAlpha(150), _x, _y + _height, Gray._255.withAlpha(0))); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, Gray._255.withAlpha(150), _x, _y + _height, Gray._255.withAlpha(0))); } else { - g2d.setPaint(new GradientPaint(_x, _y, Gray._255, _x, _y + _height, Gray._230)); + g2d.setPaint(UIUtil.getGradientPaint(_x, _y, Gray._255, _x, _y + _height, Gray._230)); } g2d.fill(selectedShape.fillPath.getShape()); diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java index e8b6e8d91048..9b2bc20d4be3 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java @@ -1661,7 +1661,7 @@ public class JBTabsImpl extends JComponent shapeInfo.fillPath.transformLine(shapeInfo.fillPath.getX(), paintTopY, shapeInfo.fillPath.getX(), paintBottomY); - g2d.setPaint(new GradientPaint((float)gradientLine.getX1(), (float)gradientLine.getY1(), + g2d.setPaint(UIUtil.getGradientPaint((float)gradientLine.getX1(), (float)gradientLine.getY1(), shapeInfo.fillPath.transformY1(shapeInfo.from, shapeInfo.to), (float)gradientLine.getX2(), (float)gradientLine.getY2(), shapeInfo.fillPath.transformY1(shapeInfo.to, shapeInfo.from))); g2d.fill(shapeInfo.fillPath.getShape()); @@ -2051,12 +2051,12 @@ public class JBTabsImpl extends JComponent final Line2D.Float gradientLine = shape.transformLine(0, topY, 0, topY + shape.deltaY((int)(shape.getHeight() / 1.5))); - final GradientPaint gp = UIUtil.isUnderDarcula() - ? new GradientPaint(gradientLine.x1, gradientLine.y1, + final Paint gp = UIUtil.isUnderDarcula() + ? UIUtil.getGradientPaint(gradientLine.x1, gradientLine.y1, shape.transformY1(backgroundColor, backgroundColor), gradientLine.x2, gradientLine.y2, shape.transformY1(backgroundColor, backgroundColor)) - : new GradientPaint(gradientLine.x1, gradientLine.y1, + : UIUtil.getGradientPaint(gradientLine.x1, gradientLine.y1, shape.transformY1(backgroundColor.brighter().brighter(), backgroundColor), gradientLine.x2, gradientLine.y2, shape.transformY1(backgroundColor, backgroundColor.brighter().brighter())); diff --git a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java index 4ee0361558a2..41ad55d99885 100644 --- a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java +++ b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java @@ -16,6 +16,7 @@ package com.intellij.util.ui; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.registry.Registry; import com.intellij.ui.Gray; import com.intellij.ui.JBColor; import com.intellij.ui.LightColors; @@ -113,7 +114,7 @@ public class ButtonlessScrollBarUI extends BasicScrollBarUI { private void resetAnimator() { myAnimator.reset(); - if (scrollbar != null && scrollbar.getValueIsAdjusting() || myMouseIsOverThumb) { + if (scrollbar != null && scrollbar.getValueIsAdjusting() || myMouseIsOverThumb || Registry.is("ui.no.bangs.and.whistles")) { myAnimator.suspend(); myAnimationColorShift = ANIMATION_COLOR_SHIFT; } @@ -262,15 +263,15 @@ public class ButtonlessScrollBarUI extends BasicScrollBarUI { w -= 1; } - final GradientPaint paint; + final Paint paint; final Color start = adjustColor(getGradientLightColor()); final Color end = adjustColor(getGradientDarkColor()); if (vertical) { - paint = new GradientPaint(1, 0, start, w + 1, 0, end); + paint = UIUtil.getGradientPaint(1, 0, start, w + 1, 0, end); } else { - paint = new GradientPaint(0, 1, start, 0, h + 1, end); + paint = UIUtil.getGradientPaint(0, 1, start, 0, h + 1, end); } g.setPaint(paint); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/DarculaTableHeaderUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/DarculaTableHeaderUI.java index 3dc38541c4dd..385e2a9280fe 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/DarculaTableHeaderUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/DarculaTableHeaderUI.java @@ -18,6 +18,7 @@ package com.intellij.ide.ui.laf.darcula; import com.intellij.openapi.ui.GraphicsConfig; import com.intellij.ui.ColorUtil; import com.intellij.ui.Gray; +import com.intellij.util.ui.UIUtil; import javax.swing.*; import javax.swing.plaf.ComponentUI; @@ -42,7 +43,7 @@ public class DarculaTableHeaderUI extends BasicTableHeaderUI { final Graphics2D g = (Graphics2D)g2; final GraphicsConfig config = new GraphicsConfig(g); final Color bg = c.getBackground(); - g.setPaint(new GradientPaint(0,0, ColorUtil.shift(bg, 1.4), 0,c.getHeight(), ColorUtil.shift(bg, 0.9))); + g.setPaint(UIUtil.getGradientPaint(0, 0, ColorUtil.shift(bg, 1.4), 0, c.getHeight(), ColorUtil.shift(bg, 0.9))); final int h = c.getHeight(); final int w = c.getWidth(); g.fillRect(0,0, w, h); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonPainter.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonPainter.java index 0abfa4fd612e..66a9c68fcc04 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonPainter.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonPainter.java @@ -18,6 +18,7 @@ package com.intellij.ide.ui.laf.darcula.ui; import com.intellij.ide.ui.laf.darcula.DarculaUIUtil; import com.intellij.openapi.ui.GraphicsConfig; import com.intellij.ui.Gray; +import com.intellij.util.ui.UIUtil; import javax.swing.border.Border; import javax.swing.plaf.InsetsUIResource; @@ -42,7 +43,8 @@ public class DarculaButtonPainter implements Border, UIResource { final GraphicsConfig config = new GraphicsConfig(g); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT); - g2d.setPaint(new GradientPaint(width / 2, y + yOff + 1, Gray._80.withAlpha(90), width / 2, height - 2*yOff, Gray._90.withAlpha(90))); + g2d.setPaint( + UIUtil.getGradientPaint(width / 2, y + yOff + 1, Gray._80.withAlpha(90), width / 2, height - 2 * yOff, Gray._90.withAlpha(90))); //g.drawRoundRect(x + offset + 1, y + yOff + 1, width - 2 * offset, height - 2*yOff, 5, 5); ((Graphics2D)g).setPaint(Gray._100.withAlpha(180)); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java index efaffdb41f9a..06d2e49a909b 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaButtonUI.java @@ -15,6 +15,8 @@ */ package com.intellij.ide.ui.laf.darcula.ui; +import com.intellij.util.ui.UIUtil; + import javax.swing.*; import javax.swing.border.Border; import javax.swing.plaf.ComponentUI; @@ -37,10 +39,10 @@ public class DarculaButtonUI extends BasicButtonUI { final Insets ins = border.getBorderInsets(c); final int yOff = (ins.top + ins.bottom) / 4; if (((JButton)c).isDefaultButton()) { - ((Graphics2D)g).setPaint(new GradientPaint(0, 0, new Color(0x384F6B), 0, c.getHeight(), new Color(0x233143))); + ((Graphics2D)g).setPaint(UIUtil.getGradientPaint(0, 0, new Color(0x384F6B), 0, c.getHeight(), new Color(0x233143))); } else { - ((Graphics2D)g).setPaint(new GradientPaint(0, 0, new Color(85, 90, 92), 0, c.getHeight(), new Color(65, 70, 72))); + ((Graphics2D)g).setPaint(UIUtil.getGradientPaint(0, 0, new Color(85, 90, 92), 0, c.getHeight(), new Color(65, 70, 72))); } g.fillRoundRect(4, yOff, c.getWidth() - 2 * 4, c.getHeight() - 2 * yOff, 5, 5); } diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java index 9537a23b5304..1df150c08bbe 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaCheckBoxUI.java @@ -81,7 +81,7 @@ public class DarculaCheckBoxUI extends MetalCheckBoxUI { final int u = 1; g.translate(x, y); - final GradientPaint paint = new GradientPaint(w / 2, 0, b.getBackground().brighter(), + final Paint paint = UIUtil.getGradientPaint(w / 2, 0, b.getBackground().brighter(), w / 2, h, b.getBackground()); g.setPaint(paint); g.fillRect(u, u, w - 2 * u, h - 2 * u); @@ -94,15 +94,15 @@ public class DarculaCheckBoxUI extends MetalCheckBoxUI { final boolean armed = b.getModel().isArmed(); if (c.hasFocus()) { - g.setPaint(new GradientPaint(w/2, 1, armed ? Gray._100: Gray._120, w/2, h, armed ? Gray._55 : Gray._75)); + g.setPaint(UIUtil.getGradientPaint(w/2, 1, armed ? Gray._100: Gray._120, w/2, h, armed ? Gray._55 : Gray._75)); g.fillRoundRect(0, 0, w - 2, h - 2, 4, 4); DarculaUIUtil.paintFocusRing(g, 1, 1, w - 2, h - 2); } else { - g.setPaint(new GradientPaint(w / 2, 1, Gray._110, w / 2, h, Gray._95)); + g.setPaint(UIUtil.getGradientPaint(w / 2, 1, Gray._110, w / 2, h, Gray._95)); g.fillRoundRect(0, 0, w , h , 4, 4); - g.setPaint(new GradientPaint(w / 2, 1, Gray._120.withAlpha(90), w / 2, h, Gray._105.withAlpha(90))); + g.setPaint(UIUtil.getGradientPaint(w / 2, 1, Gray._120.withAlpha(90), w / 2, h, Gray._105.withAlpha(90))); g.drawRoundRect(0, 1, w, h - 1, 4, 4); g.setPaint(Gray._40.withAlpha(180)); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java index 7e5903bc01cb..d8f36b9ab2ed 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaRadioButtonUI.java @@ -22,6 +22,7 @@ import com.intellij.ui.ColorUtil; import com.intellij.ui.Gray; import com.intellij.util.ui.EmptyIcon; import com.intellij.util.ui.GraphicsUtil; +import com.intellij.util.ui.UIUtil; import sun.swing.SwingUtilities2; import javax.swing.*; @@ -86,7 +87,8 @@ public class DarculaRadioButtonUI extends MetalRadioButtonUI { //setup AA for lines final GraphicsConfig config = GraphicsUtil.setupAAPainting(g); - g.setPaint(new GradientPaint(0, 0, ColorUtil.shift(c.getBackground(), 1.5), 0, c.getHeight(), ColorUtil.shift(c.getBackground(), 1.2))); + g.setPaint( + UIUtil.getGradientPaint(0, 0, ColorUtil.shift(c.getBackground(), 1.5), 0, c.getHeight(), ColorUtil.shift(c.getBackground(), 1.2))); g.fillOval(0, 1, w - 1, h - 1); if (b.hasFocus()) { @@ -94,7 +96,7 @@ public class DarculaRadioButtonUI extends MetalRadioButtonUI { int sysOffY = SystemInfo.isMac ? 0 : -1; DarculaUIUtil.paintFocusOval(g, x-6 + sysOffX, y-3 + sysOffY, w-2, h-2); } else { - g.setPaint(new GradientPaint(w / 2, 1, Gray._160.withAlpha(90), w / 2, h, Gray._100.withAlpha(90))); + g.setPaint(UIUtil.getGradientPaint(w / 2, 1, Gray._160.withAlpha(90), w / 2, h, Gray._100.withAlpha(90))); g.drawOval(0, 2, w - 1, h - 1); g.setPaint(Gray._40.withAlpha(200)); diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/IdeaActionButtonLook.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/IdeaActionButtonLook.java index 7563c707f81b..de261f29a031 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/IdeaActionButtonLook.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/IdeaActionButtonLook.java @@ -42,7 +42,7 @@ public class IdeaActionButtonLook extends ActionButtonLook { if (UIUtil.isUnderAquaLookAndFeel()) { if (state == ActionButtonComponent.PUSHED) { - ((Graphics2D)g).setPaint(new GradientPaint(0, 0, ALPHA_40, dimension.width, dimension.height, ALPHA_20)); + ((Graphics2D)g).setPaint(UIUtil.getGradientPaint(0, 0, ALPHA_40, dimension.width, dimension.height, ALPHA_20)); g.fillRect(0, 0, dimension.width - 1, dimension.height - 1); g.setColor(ALPHA_120); @@ -53,7 +53,7 @@ public class IdeaActionButtonLook extends ActionButtonLook { g.drawRect(1, 1, dimension.width - 3, dimension.height - 3); } else if (state == ActionButtonComponent.POPPED) { - ((Graphics2D)g).setPaint(new GradientPaint(0, 0, Gray._235, 0, dimension.height, Gray._200)); + ((Graphics2D)g).setPaint(UIUtil.getGradientPaint(0, 0, Gray._235, 0, dimension.height, Gray._200)); g.fillRect(1, 1, dimension.width - 3, dimension.height - 3); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java index bb88c68dabf1..3082842befd5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorHeaderComponent.java @@ -40,7 +40,7 @@ public class EditorHeaderComponent extends JPanel { final Graphics2D g2d = (Graphics2D)g; if (!UIUtil.isUnderGTKLookAndFeel()) { - g2d.setPaint(new GradientPaint(0, 0, GRADIENT_C1, 0, getHeight(), GRADIENT_C2)); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, GRADIENT_C1, 0, getHeight(), GRADIENT_C2)); g2d.fillRect(1, 1, getWidth(), getHeight() - 1); g2d.setPaint(null); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/Stripe.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/Stripe.java index fc51919c3bfe..5540797fcbe3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/Stripe.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/Stripe.java @@ -586,13 +586,13 @@ final class Stripe extends JPanel{ if (anchor == ToolWindowAnchor.LEFT || anchor == ToolWindowAnchor.RIGHT) { bg = (BufferedImage) createImage(bounds.width, 50); Graphics2D graphics = bg.createGraphics(); - graphics.setPaint(new GradientPaint(0, 0, new Color(0, 0, 0, 10), bounds.width, 0, new Color(0, 0, 0, 0))); + graphics.setPaint(UIUtil.getGradientPaint(0, 0, new Color(0, 0, 0, 10), bounds.width, 0, new Color(0, 0, 0, 0))); graphics.fillRect(0, 0, bounds.width, 50); graphics.dispose(); } else { bg = (BufferedImage) createImage(50, bounds.height); Graphics2D graphics = bg.createGraphics(); - graphics.setPaint(new GradientPaint(0, 0, new Color(0, 0, 0, 0), 0, bounds.height, new Color(0, 0, 0, 10))); + graphics.setPaint(UIUtil.getGradientPaint(0, 0, new Color(0, 0, 0, 0), 0, bounds.height, new Color(0, 0, 0, 10))); graphics.fillRect(0, 0, 50, bounds.height); graphics.dispose(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java index 45a9d216e332..45a21f9ae4a3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ComboContentLayout.java @@ -96,7 +96,7 @@ class ComboContentLayout extends ContentLayout { final GraphicsConfig c = new GraphicsConfig(g); c.setAntialiasing(true); - g2d.setPaint(new GradientPaint(0, 0, new Color(0, 0, 0, 10), 0, r.height, new Color(0, 0, 0, 30))); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, new Color(0, 0, 0, 10), 0, r.height, new Color(0, 0, 0, 30))); g2d.fillRect(0, 0, r.width, r.height); g2d.setColor(new Color(0, 0, 0, 60)); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java index 706c979666d9..96ea3f06b5c4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ContentLayout.java @@ -20,6 +20,7 @@ import com.intellij.ui.Gray; import com.intellij.ui.awt.RelativeRectangle; import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentManagerEvent; +import com.intellij.util.ui.UIUtil; import javax.swing.*; import javax.swing.border.EmptyBorder; @@ -87,15 +88,16 @@ abstract class ContentLayout { protected void fillTabShape(Graphics2D g2d, Shape shape, boolean isSelected, Rectangle bounds) { if (myUi.myWindow.isActive()) { if (isSelected) { - g2d.setPaint(new GradientPaint(bounds.x, bounds.y, TAB_BG_ACTIVE_WND_SELECTED_FROM, bounds.x, (float)bounds.getMaxY(), TAB_BG_ACTIVE_WND_SELECTED_TO)); + g2d.setPaint(UIUtil.getGradientPaint(bounds.x, bounds.y, TAB_BG_ACTIVE_WND_SELECTED_FROM, bounds.x, (float)bounds.getMaxY(), + TAB_BG_ACTIVE_WND_SELECTED_TO)); } else { - g2d.setPaint(new GradientPaint(bounds.x, bounds.y, TAB_BG_ACTIVE_WND_UNSELECTED_FROM, bounds.x, (float)bounds.getMaxY(), TAB_BG_ACTIVE_WND_UNSELECTED_TO)); + g2d.setPaint(UIUtil.getGradientPaint(bounds.x, bounds.y, TAB_BG_ACTIVE_WND_UNSELECTED_FROM, bounds.x, (float)bounds.getMaxY(), TAB_BG_ACTIVE_WND_UNSELECTED_TO)); } } else { g2d.setPaint( - new GradientPaint(bounds.x, bounds.y, TAB_BG_PASSIVE_WND_FROM, bounds.x, (float)bounds.getMaxY(), TAB_BG_PASSIVE_WND_TO)); + UIUtil.getGradientPaint(bounds.x, bounds.y, TAB_BG_PASSIVE_WND_FROM, bounds.x, (float)bounds.getMaxY(), TAB_BG_PASSIVE_WND_TO)); } g2d.fill(shape); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java index 9f6b8411ffa6..ca19703b74d6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/TabContentLayout.java @@ -366,7 +366,7 @@ class TabContentLayout extends ContentLayout { } } else { - g2d.setPaint(new GradientPaint(0, 0, new Color(0, 0, 0, 10), 0, r.height, new Color(0, 0, 0, 30))); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, new Color(0, 0, 0, 10), 0, r.height, new Color(0, 0, 0, 30))); g2d.fillRect(0, 0, r.width, r.height); final Color c = new Color(255, 255, 255, UIUtil.isUnderDarcula() ? 10 : 80); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MacStatusBarUI.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MacStatusBarUI.java index a169d68dda09..c53b01bbab87 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MacStatusBarUI.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MacStatusBarUI.java @@ -152,7 +152,7 @@ public class MacStatusBarUI extends StatusBarUI implements Activatable { final Color top = active ? ACTIVE_TOP_COLOR : INACTIVE_TOP_COLOR; final Color bottom = active ? ACTIVE_BOTTOM_COLOR : INACTIVE_BOTTOM_COLOR; - final GradientPaint paint = new GradientPaint(0, 0, top, 0, height, bottom); + final Paint paint = UIUtil.getGradientPaint(0, 0, top, 0, height, bottom); g.setPaint(paint); g.fillRect(0, 0, width, height); diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java index be4d32c81ced..c14d323a388a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/MemoryUsagePanel.java @@ -148,7 +148,7 @@ public class MemoryUsagePanel extends JButton implements CustomStatusBarWidget { g2.setColor(UIUtil.getControlColor()); } else { - g2.setPaint(new GradientPaint(0, 0, new JBColor(Gray._190, Gray._120), 0, barHeight, new JBColor(Gray._230, Gray._160))); + g2.setPaint(UIUtil.getGradientPaint(0, 0, new JBColor(Gray._190, Gray._120), 0, barHeight, new JBColor(Gray._230, Gray._160))); } g2.fillRect(xOffset, yOffset, totalBarLength, barHeight); @@ -194,10 +194,10 @@ public class MemoryUsagePanel extends JButton implements CustomStatusBarWidget { end = end.darker(); } if (invert) { - g2.setPaint(new GradientPaint(0, 0, end, 0, height, start)); + g2.setPaint(UIUtil.getGradientPaint(0, 0, end, 0, height, start)); } else { - g2.setPaint(new GradientPaint(0, 0, start, 0, height, end)); + g2.setPaint(UIUtil.getGradientPaint(0, 0, start, 0, height, end)); } } diff --git a/platform/platform-impl/src/com/intellij/ui/AppIcon.java b/platform/platform-impl/src/com/intellij/ui/AppIcon.java index dff03cd3b97c..4dba3bebacb3 100644 --- a/platform/platform-impl/src/com/intellij/ui/AppIcon.java +++ b/platform/platform-impl/src/com/intellij/ui/AppIcon.java @@ -308,7 +308,7 @@ public abstract class AppIcon { appImg.myG2d.setColor(backGround); appImg.myG2d.fill(rect); final Color color = isOk ? scheme.getOkColor() : scheme.getErrorColor(); - final GradientPaint paint = new GradientPaint(xInset + 1, y + 1, color.brighter(), + final Paint paint = UIUtil.getGradientPaint(xInset + 1, y + 1, color.brighter(), xInset + 1, y + progressHeight - 1, color.darker().darker()); appImg.myG2d.setPaint(paint); appImg.myG2d.fill(progress); diff --git a/platform/platform-impl/src/com/intellij/ui/SlideComponent.java b/platform/platform-impl/src/com/intellij/ui/SlideComponent.java index 186081befa6b..6ceb22d3142c 100644 --- a/platform/platform-impl/src/com/intellij/ui/SlideComponent.java +++ b/platform/platform-impl/src/com/intellij/ui/SlideComponent.java @@ -203,7 +203,7 @@ class SlideComponent extends JComponent { final Graphics2D g2d = (Graphics2D)g; if (myVertical) { - g2d.setPaint(new GradientPaint(0f, 0f, Color.WHITE, 0f, getHeight(), Color.BLACK)); + g2d.setPaint(UIUtil.getGradientPaint(0f, 0f, Color.WHITE, 0f, getHeight(), Color.BLACK)); g.fillRect(7, 10, 12, getHeight() - 20); g.setColor(Gray._150); @@ -213,7 +213,7 @@ class SlideComponent extends JComponent { g.drawRect(8, 11, 10, getHeight() - 22); } else { - g2d.setPaint(new GradientPaint(0f, 0f, Color.WHITE, getWidth(), 0f, Color.BLACK)); + g2d.setPaint(UIUtil.getGradientPaint(0f, 0f, Color.WHITE, getWidth(), 0f, Color.BLACK)); g.fillRect(10, 7, getWidth() - 20, 12); g.setColor(Gray._150); diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index 5b17844a45e7..6ccbbc5c6401 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -272,4 +272,5 @@ new.project.wizard=false new.ruby.sdk.configurable=false diagrams.rendering.no.cache=true -wolf.the.problem.solver=true \ No newline at end of file +wolf.the.problem.solver=true +ui.no.bangs.and.whistles=false diff --git a/platform/util/src/com/intellij/ui/CaptionPanel.java b/platform/util/src/com/intellij/ui/CaptionPanel.java index 00687c54fa33..884bfe1ab9a7 100644 --- a/platform/util/src/com/intellij/ui/CaptionPanel.java +++ b/platform/util/src/com/intellij/ui/CaptionPanel.java @@ -67,14 +67,14 @@ public class CaptionPanel extends JPanel { g.drawLine(0, 0, getWidth(), 0); g.setColor(BOTTOM_FLICK_ACTIVE); g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1); - g2d.setPaint(new GradientPaint(0, 0, BND_ACTIVE_COLOR, 0, getHeight(), CNT_ACTIVE_COLOR)); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, BND_ACTIVE_COLOR, 0, getHeight(), CNT_ACTIVE_COLOR)); } else { g.setColor(TOP_FLICK_PASSIVE); g.drawLine(0, 0, getWidth(), 0); g.setColor(BOTTOM_FLICK_PASSIVE); g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1); - g2d.setPaint(new GradientPaint(0, 0, BND_COLOR, 0, getHeight(), CNT_COLOR)); + g2d.setPaint(UIUtil.getGradientPaint(0, 0, BND_COLOR, 0, getHeight(), CNT_COLOR)); } g2d.fillRect(0, 1, getWidth(), getHeight() - 2); @@ -86,14 +86,14 @@ public class CaptionPanel extends JPanel { g.drawLine(0, 0, getWidth(), 0); g.setColor(Gray._50); g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1); - g.setPaint(new GradientPaint(0, 0, Gray._100, 0, getHeight(), Gray._85)); + g.setPaint(UIUtil.getGradientPaint(0, 0, Gray._100, 0, getHeight(), Gray._85)); } else { g.setColor(Gray._100); g.drawLine(0, 0, getWidth(), 0); g.setColor(Gray._50); g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1); - g.setPaint(new GradientPaint(0, 0, Gray._120, 0, getHeight(), Gray._105)); + g.setPaint(UIUtil.getGradientPaint(0, 0, Gray._120, 0, getHeight(), Gray._105)); } g.fillRect(0, 1, getWidth(), getHeight() - 2); diff --git a/platform/util/src/com/intellij/ui/ColorUtil.java b/platform/util/src/com/intellij/ui/ColorUtil.java index 931f246d2a5f..b0dd3859919f 100644 --- a/platform/util/src/com/intellij/ui/ColorUtil.java +++ b/platform/util/src/com/intellij/ui/ColorUtil.java @@ -132,13 +132,12 @@ public class ColorUtil { return (1 - (0.299 * c.getRed() + 0.587 * c.getGreen() + 0.114 * c.getBlue()) / 255) >= 0.5; } - public static Color mix(Color c1, Color c2, float balance) { - assert balance >= 0 && balance <= 1 : "balance should be in 0..1"; - float[] rgbs1 = c1.getRGBComponents(null); - float[] rgbs2 = c2.getRGBComponents(null); - for (int i = 0; i < 4; i++) { - rgbs1[i] = rgbs1[i] * (1 - balance) + rgbs2[i] * balance; - } - return new Color(rgbs1[0], rgbs1[1], rgbs1[2], rgbs1[3]); + @NotNull + public static Color mix(@NotNull Color c1, @NotNull Color c2, double balance) { + balance = Math.min(1, Math.max(0, balance)); + return new Color((int)((1 - balance) * c1.getRed() + c2.getRed() * balance + .5), + (int)((1 - balance) * c1.getGreen() + c2.getGreen() * balance + .5), + (int)((1 - balance) * c1.getBlue() + c2.getBlue() * balance + .5), + (int)((1 - balance) * c1.getAlpha() + c2.getAlpha() * balance + .5)); } } diff --git a/platform/util/src/com/intellij/util/ui/MacUIUtil.java b/platform/util/src/com/intellij/util/ui/MacUIUtil.java index ee0b08fd4151..af3b55023539 100644 --- a/platform/util/src/com/intellij/util/ui/MacUIUtil.java +++ b/platform/util/src/com/intellij/util/ui/MacUIUtil.java @@ -109,9 +109,9 @@ public class MacUIUtil { public static void drawToolbarDecoratorBackground(Graphics g2, int width, int height) { final Graphics2D g = (Graphics2D)g2; final int h1 = height / 2; - g.setPaint(new GradientPaint(0,0, Gray._247, 0, h1, Gray._240)); + g.setPaint(UIUtil.getGradientPaint(0,0, Gray._247, 0, h1, Gray._240)); g.fillRect(0, 0, width, h1); - g.setPaint(new GradientPaint(0,h1, Gray._229, 0, height, Gray._234)); + g.setPaint(UIUtil.getGradientPaint(0,h1, Gray._229, 0, height, Gray._234)); g.fillRect(0, h1, width, height); } diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index 5ff8f94763fe..b0e8489debb2 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -1250,7 +1250,7 @@ public class UIUtil { final Composite oldComposite = g.getComposite(); g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.7f)); - g.setPaint(new GradientPaint(startX, 2, c1, startX, height - 5, c2)); + g.setPaint(getGradientPaint(startX, 2, c1, startX, height - 5, c2)); g.fillRect(startX, 3, endX - startX, height - 5); if (drawRound) { @@ -1315,8 +1315,7 @@ public class UIUtil { public static void drawGradientHToolbarBackground(final Graphics g, final int width, final int height) { final Graphics2D g2d = (Graphics2D)g; - final GradientPaint gradientPaint = new GradientPaint(0, 0, Gray._215, 0, height, Gray._200); - g2d.setPaint(gradientPaint); + g2d.setPaint(getGradientPaint(0, 0, Gray._215, 0, height, Gray._200)); g2d.fillRect(0, 0, width, height); } @@ -1334,7 +1333,7 @@ public class UIUtil { g.setColor(getPanelBackground()); g.fillRect(x, 0, width, height); - ((Graphics2D)g).setPaint(new GradientPaint(0, 0, new Color(0, 0, 0, 5), 0, height, new Color(0, 0, 0, 20))); + ((Graphics2D)g).setPaint(getGradientPaint(0, 0, new Color(0, 0, 0, 5), 0, height, new Color(0, 0, 0, 20))); g.fillRect(x, 0, width, height); g.setColor(new Color(0, 0, 0, toolWindow ? 90 : 50)); @@ -2599,4 +2598,9 @@ public class UIUtil { public static Color getDecoratedRowColor() { return isUnderDarcula() ? DECORATED_ROW_BG_COLOR_DARK : DECORATED_ROW_BG_COLOR; } + + @NotNull + public static Paint getGradientPaint(float x1, float y1, @NotNull Color c1, float x2, float y2, @NotNull Color c2) { + return (Registry.is("ui.no.bangs.and.whistles", false)) ? ColorUtil.mix(c1, c2, .5) : new GradientPaint(x1, y1, c1, x2, y2, c2); + } } diff --git a/platform/util/testSrc/com/intellij/ui/ColorUtilTest.java b/platform/util/testSrc/com/intellij/ui/ColorUtilTest.java new file mode 100644 index 000000000000..a33894c17f52 --- /dev/null +++ b/platform/util/testSrc/com/intellij/ui/ColorUtilTest.java @@ -0,0 +1,37 @@ +/* + * Copyright 2000-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ui; + +import junit.framework.TestCase; + +import java.awt.*; + +import static com.intellij.ui.ColorUtil.*; + +/** + * User: Vassiliy.Kudryashov + */ +public class ColorUtilTest extends TestCase { + public void testColorMix() { + assertEquals(Color.GRAY, mix(Color.BLACK, Color.WHITE, .5)); + assertEquals(Color.LIGHT_GRAY, mix(Color.BLACK, Color.WHITE, .751)); + assertEquals(Color.BLACK, mix(Color.BLACK, Color.WHITE, 0)); + assertEquals(Color.WHITE, mix(Color.BLACK, Color.WHITE, 1)); + assertEquals(Color.WHITE, mix(Color.WHITE, Color.WHITE, 0)); + assertEquals(Color.WHITE, mix(Color.WHITE, Color.WHITE, .5)); + assertEquals(withAlpha(Color.GRAY, .17), mix(withAlpha(Color.WHITE, .17), withAlpha(Color.BLACK, .17), .5)); + } +}