summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWildemann Stefan <stefan.wildemann@corpuls.com>2019-09-23 14:57:56 +0200
committerWildemann Stefan <stefan.wildemann@corpuls.com>2019-09-25 13:02:17 +0200
commit7115f2a8a3ad56ead1b1ec2ef791888b2a860758 (patch)
treee7da6b43d2ebb875c8fb85f2259e886d7c2d47f4
parent58ad98c91ecf207e79aeea4ba746de1e49c78071 (diff)
downloadnavit-7115f2a8a3ad56ead1b1ec2ef791888b2a860758.tar.gz
Enhancement:layout:allow to set default icon size in layout
-rw-r--r--navit/graphics.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/navit/graphics.c b/navit/graphics.c
index a06e8e9da..e867a2ec3 100644
--- a/navit/graphics.c
+++ b/navit/graphics.c
@@ -2608,11 +2608,20 @@ static inline void displayitem_draw_text(struct displayitem *di,struct display_c
}
static inline void displayitem_draw_icon(struct displayitem *di,struct display_context *dc, struct element * e,
- struct graphics * gra, struct point * pa, int count) {
+ struct graphics * gra, struct point * pa, int count, struct layout * l) {
if (count) {
struct graphics_image *img=dc->img;
if (!img || item_is_custom_poi(di->item)) {
+ int icon_width = e->u.icon.width;
+ int icon_height = e->u.icon.height;
char *path;
+ /* get the standard icon size out of the layout if unset */
+ if(l != NULL) {
+ if(icon_height==-1)
+ icon_height=l->icon_h;
+ if(icon_width==-1)
+ icon_width=l->icon_w;
+ }
if (item_is_custom_poi(di->item)) {
char *icon;
char *src;
@@ -2626,7 +2635,7 @@ static inline void displayitem_draw_icon(struct displayitem *di,struct display_c
g_free(icon);
} else
path=graphics_icon_path(e->u.icon.src);
- img=graphics_image_new_scaled_rotated(gra, path, e->u.icon.width, e->u.icon.height, e->u.icon.rotation);
+ img=graphics_image_new_scaled_rotated(gra, path, icon_width, icon_height, e->u.icon.rotation);
if (img)
dc->img=img;
else
@@ -2732,7 +2741,7 @@ static void displayitem_draw(struct displayitem *di, struct layout *l, struct di
displayitem_draw_text(di, dc, e, gra, pa, count, &t_holes);
break;
case element_icon:
- displayitem_draw_icon(di, dc, e, gra, pa, count);
+ displayitem_draw_icon(di, dc, e, gra, pa, count, l);
break;
case element_image:
displayitem_draw_image (di, dc, gra, pa, count);