Ignore:
Timestamp:
2011-03-12T10:27:24+01:00 (13 years ago)
Author:
bastiK
Message:

mapcss: add text-halo-radius

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java

    r3968 r3979  
    1212import java.awt.Polygon;
    1313import java.awt.Rectangle;
     14import java.awt.Shape;
    1415import java.awt.TexturePaint;
    1516import java.awt.font.FontRenderContext;
     
    315316            gv.setGlyphTransform(i, trfm);
    316317        }
    317         g.setColor(text.color);
    318         g.drawGlyphVector(gv, 0, 0);
    319 
     318        if (text.haloRadius != null) {
     319            Shape textOutline = gv.getOutline();
     320            g.setStroke(new BasicStroke(2*text.haloRadius, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND));
     321            g.setColor(text.haloColor);
     322            g.draw(textOutline);
     323            g.setStroke(new BasicStroke());
     324            g.setColor(text.color);
     325            g.fill(textOutline);
     326        } else {
     327            g.setColor(text.color);
     328            g.drawGlyphVector(gv, 0, 0);
     329        }
    320330    }
    321331
     
    489499            return;
    490500
    491         if (inactive || n.isDisabled()) {
    492             g.setColor(inactiveColor);
    493         } else {
    494             g.setColor(text.color);
    495         }
    496501        Font defaultFont = g.getFont();
    497502        g.setFont(text.font);
     
    538543            } else throw new AssertionError();
    539544        }
    540         g.drawString(s, x, y);
     545        if (inactive || n.isDisabled()) {
     546            g.setColor(inactiveColor);
     547        } else {
     548            g.setColor(text.color);
     549        }
     550        if (text.haloRadius != null) {
     551            g.setStroke(new BasicStroke(2*text.haloRadius, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND));
     552            g.setColor(text.haloColor);
     553            FontRenderContext frc = g.getFontRenderContext();
     554            GlyphVector gv = text.font.createGlyphVector(frc, s);
     555            Shape textOutline = gv.getOutline(x, y);
     556            g.draw(textOutline);
     557            g.setStroke(new BasicStroke());
     558            g.setColor(text.color);
     559            g.fill(textOutline);
     560        } else {
     561            g.drawString(s, x, y);
     562        }
    541563        g.setFont(defaultFont);
    542564    }
Note: See TracChangeset for help on using the changeset viewer.