From dbff6dd42f8b6fb90c8d3f07bde48a6be0bfddf0 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 24 Jun 2014 18:25:31 -0700 Subject: [PATCH] altosuilib: Outline map lines and distance value with white This makes the value and line visible on dark backgrounds Signed-off-by: Keith Packard --- altosuilib/AltosUIMapLine.java | 19 ++++++++++++++++--- altosuilib/AltosUIMapView.java | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/altosuilib/AltosUIMapLine.java b/altosuilib/AltosUIMapLine.java index 86d2e6e2..32437d4e 100644 --- a/altosuilib/AltosUIMapLine.java +++ b/altosuilib/AltosUIMapLine.java @@ -31,6 +31,7 @@ public class AltosUIMapLine { AltosUILatLon start, end; private Font font = null; + static public int stroke_width = 6; public void set_font(Font font) { this.font = font; @@ -87,19 +88,24 @@ public class AltosUIMapLine { } public void paint(Graphics2D g, AltosUIMapTransform t) { - g.setColor(Color.BLUE); if (start == null || end == null) return; + g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); + Line2D.Double line = new Line2D.Double(t.screen(start), t.screen(end)); + g.setColor(Color.WHITE); + g.setStroke(new BasicStroke(stroke_width+4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); + g.draw(line); + + g.setColor(Color.BLUE); + g.setStroke(new BasicStroke(stroke_width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); g.draw(line); String message = line_dist(); - g.setFont(font); - g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); Rectangle2D bounds; bounds = font.getStringBounds(message, g.getFontRenderContext()); @@ -111,6 +117,13 @@ public class AltosUIMapLine { } else { x += 2.0f; } + + g.setFont(font); + g.setColor(Color.WHITE); + for (int dy = -2; dy <= 2; dy += 2) + for (int dx = -2; dx <= 2; dx += 2) + g.drawString(message, x + dx, y + dy); + g.setColor(Color.BLUE); g.drawString(message, x, y); } } diff --git a/altosuilib/AltosUIMapView.java b/altosuilib/AltosUIMapView.java index 34a85f52..70b8e2e9 100644 --- a/altosuilib/AltosUIMapView.java +++ b/altosuilib/AltosUIMapView.java @@ -67,7 +67,7 @@ public class AltosUIMapView extends Component implements MouseMotionListener, Mo AltosUILatLon centre; public void set_font() { - line.set_font(AltosUILib.value_font); + line.set_font(AltosUILib.status_font); for (AltosUIMapTile tile : tiles.values()) tile.set_font(AltosUILib.value_font); repaint(); -- 2.30.2