From 6ce676880de4e3de4954ba8949fa059c4e060fc6 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Mon, 27 Jun 2016 17:28:00 +0300 Subject: [PATCH] IDEA-157667 Editor's scrollbar thumb: alpha and colors use new default values for scroll bars on Windows and Mac --- .../intellij/ui/components/JBScrollPane.java | 77 +++++++++++-------- .../util/resources/misc/registry.properties | 30 ++++---- 2 files changed, 58 insertions(+), 49 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java index 0c647d8646a4..9b788f7b49da 100644 --- a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java +++ b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java @@ -66,11 +66,11 @@ public class JBScrollPane extends JScrollPane { @Deprecated public static final RegionPainter THUMB_PAINTER = new ProtectedPainter( - new DefaultThumbPainter(new SubtractThumbPainter(.20f, .15f, Gray.x80, Gray.x91), - new CachedValue("ide.scroll.thumb.windows.default.alpha", "0.20", .20f), + new DefaultThumbPainter(new SubtractThumbPainter(.25f, .15f, Gray.x80, Gray.x8C), + new CachedValue("ide.scroll.thumb.windows.default.alpha", "0.25", .25f), new CachedValue("ide.scroll.thumb.windows.default.delta", "0.15", .15f), new CachedColor("ide.scroll.thumb.windows.default.color", "#808080", Gray.x80), - new CachedColor("ide.scroll.thumb.windows.default.border", "#919191", Gray.x91)), + new CachedColor("ide.scroll.thumb.windows.default.border", "#8C8C8C", Gray.x8C)), new DefaultThumbPainter(new ThumbPainter(.7f, .2f, Gray.x99, Gray.x8C), new CachedValue("ide.scroll.thumb.linux.default.alpha", "0.70", .70f), new CachedValue("ide.scroll.thumb.linux.default.delta", "0.20", .20f), @@ -78,11 +78,11 @@ public class JBScrollPane extends JScrollPane { new CachedColor("ide.scroll.thumb.linux.default.border", "#8c8c8c", Gray.x8C))); @Deprecated public static final RegionPainter THUMB_DARK_PAINTER = new DefaultThumbPainter( - new ThumbPainter(.35f, .25f, Gray.x80, Gray.x94), - new CachedValue("ide.scroll.thumb.windows.darcula.alpha", "0.35", .35f), - new CachedValue("ide.scroll.thumb.windows.darcula.delta", "0.25", .25f), - new CachedColor("ide.scroll.thumb.windows.darcula.color", "#808080", Gray.x80), - new CachedColor("ide.scroll.thumb.windows.darcula.border", "#949494", Gray.x94)); + new ThumbPainter(.37f, .13f, Gray.xA6, Gray.x1A), + new CachedValue("ide.scroll.thumb.windows.darcula.alpha", "0.37", .37f), + new CachedValue("ide.scroll.thumb.windows.darcula.delta", "0.13", .13f), + new CachedColor("ide.scroll.thumb.windows.darcula.color", "#A6A6A6", Gray.xA6), + new CachedColor("ide.scroll.thumb.windows.darcula.border", "#1A1A1A", Gray.x1A)); @Deprecated public static final RegionPainter MAC_THUMB_PAINTER = new DefaultThumbPainter( @@ -90,27 +90,27 @@ public class JBScrollPane extends JScrollPane { new CachedValue("ide.scroll.thumb.mac.classic.default.alpha", "0.20", .20f), new CachedValue("ide.scroll.thumb.mac.classic.default.delta", "0.30", .30f), new CachedColor("ide.scroll.thumb.mac.classic.default.color", "#000000", Gray.x00), - new CachedColor("ide.scroll.thumb.mac.classic.default.border", "#000000", Gray.x00)); + new CachedColor("ide.scroll.thumb.mac.classic.default.border", "", null)); static final RegionPainter MAC_OVERLAY_THUMB_PAINTER = new DefaultThumbPainter( new RoundThumbPainter(2, 0f, .5f, Gray.x00, Gray.x00), new CachedValue("ide.scroll.thumb.mac.overlay.default.alpha", "0.00", .00f), new CachedValue("ide.scroll.thumb.mac.overlay.default.delta", "0.50", .50f), new CachedColor("ide.scroll.thumb.mac.overlay.default.color", "#000000", Gray.x00), - new CachedColor("ide.scroll.thumb.mac.overlay.default.border", "#000000", Gray.x00)); + new CachedColor("ide.scroll.thumb.mac.overlay.default.border", "", null)); @Deprecated public static final RegionPainter MAC_THUMB_DARK_PAINTER = new DefaultThumbPainter( - new RoundThumbPainter(2, .10f, .05f, Gray.xFF, Gray.xFF), - new CachedValue("ide.scroll.thumb.mac.classic.darcula.alpha", "0.10", .10f), - new CachedValue("ide.scroll.thumb.mac.classic.darcula.delta", "0.05", .05f), - new CachedColor("ide.scroll.thumb.mac.classic.darcula.color", "#ffffff", Gray.xFF), - new CachedColor("ide.scroll.thumb.mac.classic.darcula.border", "#ffffff", Gray.xFF)); + new RoundThumbPainter(2, .35f, .20f, Gray.xA6, Gray.x1A), + new CachedValue("ide.scroll.thumb.mac.classic.darcula.alpha", "0.35", .35f), + new CachedValue("ide.scroll.thumb.mac.classic.darcula.delta", "0.20", .20f), + new CachedColor("ide.scroll.thumb.mac.classic.darcula.color", "#A6A6A6", Gray.xA6), + new CachedColor("ide.scroll.thumb.mac.classic.darcula.border", "#1A1A1A", Gray.x1A)); static final RegionPainter MAC_OVERLAY_THUMB_DARK_PAINTER = new DefaultThumbPainter( - new RoundThumbPainter(2, 0f, .15f, Gray.xFF, Gray.xFF), + new RoundThumbPainter(2, 0f, .55f, Gray.xA6, Gray.x1A), new CachedValue("ide.scroll.thumb.mac.overlay.darcula.alpha", "0.00", .00f), - new CachedValue("ide.scroll.thumb.mac.overlay.darcula.delta", "0.15", .15f), - new CachedColor("ide.scroll.thumb.mac.overlay.darcula.color", "#ffffff", Gray.xFF), - new CachedColor("ide.scroll.thumb.mac.overlay.darcula.border", "#ffffff", Gray.xFF)); + new CachedValue("ide.scroll.thumb.mac.overlay.darcula.delta", "0.55", .55f), + new CachedColor("ide.scroll.thumb.mac.overlay.darcula.color", "#A6A6A6", Gray.xA6), + new CachedColor("ide.scroll.thumb.mac.overlay.darcula.border", "#1A1A1A", Gray.x1A)); private static final Logger LOG = Logger.getInstance(JBScrollPane.class); @@ -900,8 +900,10 @@ public class JBScrollPane extends JScrollPane { @Override protected void paint(Graphics2D g, int x, int y, int width, int height) { - g.setColor(myFillColor); - g.fillRect(x, y, width, height); + if (myFillColor != null) { + g.setColor(myFillColor); + g.fillRect(x, y, width, height); + } } @Override @@ -929,10 +931,14 @@ public class JBScrollPane extends JScrollPane { height -= myBorder + myBorder; int arc = Math.min(width, height); - g.setColor(myFillColor); - g.fillRoundRect(x, y, width, height, arc, arc); - g.setColor(myDrawColor); - g.drawRoundRect(x, y, width - 1, height - 1, arc, arc); + if (myFillColor != null) { + g.setColor(myFillColor); + g.fillRoundRect(x, y, width, height, arc, arc); + } + if (myDrawColor != null) { + g.setColor(myDrawColor); + g.drawRoundRect(x, y, width - 1, height - 1, arc, arc); + } g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, old); } } @@ -948,15 +954,17 @@ public class JBScrollPane extends JScrollPane { @Override protected void paint(Graphics2D g, int x, int y, int width, int height) { super.paint(g, x + 1, y + 1, width - 2, height - 2); - g.setColor(myDrawColor); - if (Registry.is("ide.scroll.thumb.border.rounded")) { - g.drawLine(x + 1, y, x + width - 2, y); - g.drawLine(x + 1, y + height - 1, x + width - 2, y + height - 1); - g.drawLine(x, y + 1, x, y + height - 2); - g.drawLine(x + width - 1, y + 1, x + width - 1, y + height - 2); - } - else { - g.drawRect(x, y, width - 1, height - 1); + if (myDrawColor != null) { + g.setColor(myDrawColor); + if (Registry.is("ide.scroll.thumb.border.rounded")) { + g.drawLine(x + 1, y, x + width - 2, y); + g.drawLine(x + 1, y + height - 1, x + width - 2, y + height - 1); + g.drawLine(x, y + 1, x, y + height - 2); + g.drawLine(x + width - 1, y + 1, x + width - 1, y + height - 2); + } + else { + g.drawRect(x, y, width - 1, height - 1); + } } } } @@ -1061,6 +1069,7 @@ public class JBScrollPane extends JScrollPane { myColor = Color.decode(string); } catch (Exception ignore) { + myColor = null; } finally { myString = string; diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index 8a9b6e44ab29..6fa8277dc1b0 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -118,34 +118,34 @@ ide.scroll.track.border.paint=false ide.scroll.thumb.border.rounded=false ide.scroll.thumb.small.if.opaque=true mac.scroll.new.ui=true -ide.scroll.thumb.windows.default.alpha=0.20 +ide.scroll.thumb.windows.default.alpha=0.25 ide.scroll.thumb.windows.default.delta=0.15 ide.scroll.thumb.windows.default.color=#808080 -ide.scroll.thumb.windows.default.border=#919191 +ide.scroll.thumb.windows.default.border=#8C8C8C ide.scroll.thumb.linux.default.alpha=0.70 ide.scroll.thumb.linux.default.delta=0.20 ide.scroll.thumb.linux.default.color=#999999 ide.scroll.thumb.linux.default.border=#8c8c8c -ide.scroll.thumb.windows.darcula.alpha=0.35 -ide.scroll.thumb.windows.darcula.delta=0.25 -ide.scroll.thumb.windows.darcula.color=#808080 -ide.scroll.thumb.windows.darcula.border=#949494 +ide.scroll.thumb.windows.darcula.alpha=0.37 +ide.scroll.thumb.windows.darcula.delta=0.13 +ide.scroll.thumb.windows.darcula.color=#A6A6A6 +ide.scroll.thumb.windows.darcula.border=#1A1A1A ide.scroll.thumb.mac.classic.default.alpha=0.20 ide.scroll.thumb.mac.classic.default.delta=0.30 ide.scroll.thumb.mac.classic.default.color=#000000 -ide.scroll.thumb.mac.classic.default.border=#000000 +ide.scroll.thumb.mac.classic.default.border= ide.scroll.thumb.mac.overlay.default.alpha=0.00 ide.scroll.thumb.mac.overlay.default.delta=0.50 ide.scroll.thumb.mac.overlay.default.color=#000000 -ide.scroll.thumb.mac.overlay.default.border=#000000 -ide.scroll.thumb.mac.classic.darcula.alpha=0.10 -ide.scroll.thumb.mac.classic.darcula.delta=0.05 -ide.scroll.thumb.mac.classic.darcula.color=#ffffff -ide.scroll.thumb.mac.classic.darcula.border=#ffffff +ide.scroll.thumb.mac.overlay.default.border= +ide.scroll.thumb.mac.classic.darcula.alpha=0.35 +ide.scroll.thumb.mac.classic.darcula.delta=0.20 +ide.scroll.thumb.mac.classic.darcula.color=#A6A6A6 +ide.scroll.thumb.mac.classic.darcula.border=#1A1A1A ide.scroll.thumb.mac.overlay.darcula.alpha=0.00 -ide.scroll.thumb.mac.overlay.darcula.delta=0.15 -ide.scroll.thumb.mac.overlay.darcula.color=#ffffff -ide.scroll.thumb.mac.overlay.darcula.border=#ffffff +ide.scroll.thumb.mac.overlay.darcula.delta=0.55 +ide.scroll.thumb.mac.overlay.darcula.color=#A6A6A6 +ide.scroll.thumb.mac.overlay.darcula.border=#1A1A1A ide.tooltip.callout=true ide.tooltip.animationCycle=150