Ticket #8934: 8934-2-HaloedTexts.patch
| File 8934-2-HaloedTexts.patch, 3.3 KB (added by , 13 years ago) |
|---|
-
src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
499 499 if ((pb.width >= nb.getWidth() && pb.height >= nb.getHeight()) && // quick check 500 500 area.contains(centeredNBounds) // slow but nice 501 501 ) { 502 Font defaultFont = g.getFont(); 503 int x = (int)(centeredNBounds.getMinX() - nb.getMinX()); 504 int y = (int)(centeredNBounds.getMinY() - nb.getMinY()); 502 505 if (isInactiveMode || osm.isDisabled()) { 503 506 g.setColor(inactiveColor); 507 g.setFont (text.font); 508 g.drawString(name, x, y); 509 } else if (text.haloRadius != null) { 510 g.setStroke(new BasicStroke(2*text.haloRadius, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); 511 g.setColor(text.haloColor); 512 FontRenderContext frc = g.getFontRenderContext(); 513 GlyphVector gv = text.font.createGlyphVector(frc, name); 514 Shape textOutline = gv.getOutline(x, y); 515 g.draw(textOutline); 516 g.setStroke(new BasicStroke()); 517 g.setColor(text.color); 518 g.fill(textOutline); 504 519 } else { 505 520 g.setColor(text.color); 521 g.setFont (text.font); 522 g.drawString(name, x, y); 506 523 } 507 Font defaultFont = g.getFont();508 g.setFont (text.font);509 g.drawString (name,510 (int)(centeredNBounds.getMinX() - nb.getMinX()),511 (int)(centeredNBounds.getMinY() - nb.getMinY()));512 524 g.setFont(defaultFont); 513 525 } 514 526 } … … 589 601 } 590 602 if (isInactiveMode || n.isDisabled()) { 591 603 g.setColor(inactiveColor); 592 } else { 593 g.setColor(text.color); 594 } 595 if (text.haloRadius != null) { 604 g.drawString(s, x, y); 605 } else if (text.haloRadius != null) { 596 606 g.setStroke(new BasicStroke(2*text.haloRadius, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); 597 607 g.setColor(text.haloColor); 598 608 FontRenderContext frc = g.getFontRenderContext(); … … 603 613 g.setColor(text.color); 604 614 g.fill(textOutline); 605 615 } else { 616 g.setColor(text.color); 606 617 g.drawString(s, x, y); 607 618 } 608 619 g.setFont(defaultFont); … … 1150 1161 gv.setGlyphTransform(i, trfm); 1151 1162 } 1152 1163 } 1153 if (text.haloRadius != null) { 1164 if (isInactiveMode || way.isDisabled()) { 1165 g.setColor(inactiveColor); 1166 g.drawGlyphVector(gv, 0, 0); 1167 } else if (text.haloRadius != null) { 1154 1168 Shape textOutline = gv.getOutline(); 1155 1169 g.setStroke(new BasicStroke(2*text.haloRadius, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); 1156 1170 g.setColor(text.haloColor);
