summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Wildemann <gta04@metalstrolche.de>2019-07-18 22:42:26 +0200
committerStefan Wildemann <gta04@metalstrolche.de>2019-07-18 22:42:26 +0200
commit377cd478026b28eb4b7b06c1eb1f944c8396849b (patch)
tree86ffd5eabf63be13977214caa2b48a8649aed1b2
parentee01a9b3f06dacb3cbf7933564aa7768cd48c9be (diff)
downloadnavit-dpi_support.tar.gz
Allow gui internal font size given in human size following dpidpi_support
-rw-r--r--navit/gui/internal/gui_internal.c20
-rw-r--r--navit/gui/internal/gui_internal_priv.h2
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.