From 377cd478026b28eb4b7b06c1eb1f944c8396849b Mon Sep 17 00:00:00 2001 From: Stefan Wildemann Date: Thu, 18 Jul 2019 22:42:26 +0200 Subject: Allow gui internal font size given in human size following dpi --- navit/gui/internal/gui_internal.c | 20 ++++++++++++-------- navit/gui/internal/gui_internal_priv.h | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/navit/gui/internal/gui_internal.c b/navit/gui/internal/gui_internal.c index 392e18205..9d2a9bce4 100644 --- a/navit/gui/internal/gui_internal.c +++ b/navit/gui/internal/gui_internal.c @@ -107,9 +107,9 @@ const int SMALL_PROFILE=2; * [2] => Small profile (default) */ static struct gui_config_settings config_profiles[]= { - {545,{.type=OSD_PIXELS,.num=32},{.type=OSD_PIXELS,.num=48},{.type=OSD_PIXELS,.num=96},{.type=OSD_PIXELS,.num=10}} - , {300,{.type=OSD_PIXELS,.num=32},{.type=OSD_PIXELS,.num=48},{.type=OSD_PIXELS,.num=64},{.type=OSD_PIXELS,.num=3}} - , {200,{.type=OSD_PIXELS,.num=16},{.type=OSD_PIXELS,.num=32},{.type=OSD_PIXELS,.num=48},{.type=OSD_PIXELS,.num=2}} + {{.type=OSD_PIXELS,.num=545},{.type=OSD_PIXELS,.num=32},{.type=OSD_PIXELS,.num=48},{.type=OSD_PIXELS,.num=96},{.type=OSD_PIXELS,.num=10}} + , {{.type=OSD_PIXELS,.num=300},{.type=OSD_PIXELS,.num=32},{.type=OSD_PIXELS,.num=48},{.type=OSD_PIXELS,.num=64},{.type=OSD_PIXELS,.num=3}} + , {{.type=OSD_PIXELS,.num=200},{.type=OSD_PIXELS,.num=16},{.type=OSD_PIXELS,.num=32},{.type=OSD_PIXELS,.num=48},{.type=OSD_PIXELS,.num=2}} }; static void gui_internal_cmd_view_in_browser(struct gui_priv *this, struct widget *wm, void *data); @@ -504,10 +504,14 @@ void gui_internal_apply_config(struct gui_priv *this) { /* * Apply override values from config file */ - if(this->config.font_size == -1 ) { - this->font_size = current_config->font_size; + if(this->config.font_size.type == OSD_NOT_SET ) { + this->font_size = osd_rel2real(this->gra, &(current_config->font_size), this->root.w, 0); + if(current_config->font_size.type!=OSD_PIXELS) + this->font_size = (this->font_size * 64 * 72) / 300; } else { - this->font_size = this->config.font_size; + this->font_size = osd_rel2real(this->gra, &(this->config.font_size), this->root.w, 0); + if(this->config.font_size.type!=OSD_PIXELS) + this->font_size = (this->font_size * 64 * 72) / 300; } if(this->config.icon_xs.type == OSD_NOT_SET ) { @@ -3201,9 +3205,9 @@ static struct gui_priv * gui_internal_new(struct navit *nav, struct gui_methods gui_internal_command_init(this, attrs); if( (attr=attr_search(attrs,NULL,attr_font_size))) { - this->config.font_size=attr->u.osd_display_coordinate->num; + this->config.font_size=*(attr->u.osd_display_coordinate); } else { - this->config.font_size=-1; + this->config.font_size.type=OSD_NOT_SET; } if( (attr=attr_search(attrs,NULL,attr_icon_xs))) { this->config.icon_xs=*(attr->u.osd_display_coordinate); diff --git a/navit/gui/internal/gui_internal_priv.h b/navit/gui/internal/gui_internal_priv.h index 7e30f7b20..e317e9285 100644 --- a/navit/gui/internal/gui_internal_priv.h +++ b/navit/gui/internal/gui_internal_priv.h @@ -9,7 +9,7 @@ struct gui_config_settings { /** * The base size (in fractions of a point) to use for text. */ - int font_size; + struct osd_display_coordinate font_size; /** * The size (in pixels) that xs style icons should be scaled to. * This icon size is typically used in various lists and should be set to value which allows a list row to be easily cliked or dragged. -- cgit v1.2.1