diff --git a/docs/Changelog.md b/docs/Changelog.md index e03b749aa..582cced13 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -2,6 +2,7 @@ ## Next version +- `ThemeCallback.getText` method [#1225](https://github.com/mapsforge/vtm/pull/1225) - Motorider map theme improvements [#1183](https://github.com/mapsforge/vtm/issues/1183) - Biker map theme improvements [#1192](https://github.com/mapsforge/vtm/issues/1192) - Minor improvements and bug fixes diff --git a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java index 1d94bec32..1a58837a6 100644 --- a/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java +++ b/vtm/src/org/oscim/layers/tile/vector/labeling/LabelTileLoaderHook.java @@ -60,6 +60,8 @@ public boolean process(MapTile tile, RenderBuckets buckets, MapElement element, String value = element.tags.getValue(text.textKey); if (value == null || value.length() == 0) return false; + if (style.themeCallback != null) + value = style.themeCallback.getText(element, value); LabelTileData ld = get(tile); if (element.type == LINE) { diff --git a/vtm/src/org/oscim/theme/ThemeCallback.java b/vtm/src/org/oscim/theme/ThemeCallback.java index 975e7cce9..015ea2d0e 100644 --- a/vtm/src/org/oscim/theme/ThemeCallback.java +++ b/vtm/src/org/oscim/theme/ThemeCallback.java @@ -15,6 +15,7 @@ package org.oscim.theme; import org.oscim.backend.canvas.Bitmap; +import org.oscim.core.MapElement; import org.oscim.theme.styles.RenderStyle; /** @@ -30,4 +31,9 @@ public interface ThemeCallback { * @return the color-int */ int getColor(RenderStyle origin, int color); + + /** + * @return the text + */ + String getText(MapElement element, String text); } diff --git a/vtm/src/org/oscim/theme/styles/RenderStyle.java b/vtm/src/org/oscim/theme/styles/RenderStyle.java index 7a7c7721a..d24282c41 100644 --- a/vtm/src/org/oscim/theme/styles/RenderStyle.java +++ b/vtm/src/org/oscim/theme/styles/RenderStyle.java @@ -149,6 +149,8 @@ public interface Callback { RenderStyle mNext; boolean update; + public ThemeCallback themeCallback; + public T setCat(String cat) { this.cat = cat; return self(); diff --git a/vtm/src/org/oscim/theme/styles/TextStyle.java b/vtm/src/org/oscim/theme/styles/TextStyle.java index bbd428171..884afb3b9 100644 --- a/vtm/src/org/oscim/theme/styles/TextStyle.java +++ b/vtm/src/org/oscim/theme/styles/TextStyle.java @@ -268,6 +268,8 @@ public TextBuilder set(TextStyle text) { bgFill.setColor(b.themeCallback != null ? b.themeCallback.getColor(this, b.bgFillColor) : b.bgFillColor); } else bgFill = null; + + themeCallback = b.themeCallback; } public final String style;