subsurface/pref.h
Dirk Hohndel 9aca309611 Default font: more fine tuning
In order to get rid of the old default font on Windows (Calibri) we are
going to near ridiculous length. The reason for this is that we in the
past always saved the default font in the settings (how stupid was that!)
and so now even with a new default font in place, since there is an
explicit font in the settings we take that instead of the default.

Instead of requiring our existing users to use a registry cleaner to get
the correct default font on Windows 7 and later (the VAST majority of our
Windows users at this stage), we simply explicitly ignore that old default
font.

There is one very nasty side effect. A user cannot set Calibri as their
font of choice on Windows 7 or later (because we always force them back
onto Segoe). Given how much nicer Segoe looks I think this is an
acceptable flaw - let's hope this doesn't come back to bite me in the
future.

At the same time this changes the default font size handling. We try to
get the default font size of the OS so the app looks "right". This seems
to not give me the expected result on Linux with KDE, but maybe I'm doing
it wrong? Looks good when testing on Windows.

See #712

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-27 15:45:43 -07:00

92 lines
1.8 KiB
C

#ifndef PREF_H
#define PREF_H
#ifdef __cplusplus
extern "C" {
#endif
#include "units.h"
/* can't use 'bool' for the boolean values - different size in C and C++ */
typedef struct
{
short po2;
short pn2;
short phe;
double po2_threshold;
double pn2_threshold;
double phe_threshold;
} partial_pressure_graphs_t;
struct preferences {
const char *divelist_font;
const char *default_filename;
const char *default_cylinder;
double font_size;
partial_pressure_graphs_t pp_graphs;
short mod;
double modpO2;
short ead;
short dcceiling;
short redceiling;
short calcceiling;
short calcceiling3m;
short calcalltissues;
short calcndltts;
short gflow;
short gfhigh;
int animation_speed;
bool gf_low_at_maxdepth;
short display_invalid_dives;
short unit_system;
struct units units;
short show_sac;
short display_unused_tanks;
short show_average_depth;
short zoomed_plot;
short hrgraph;
short rulergraph;
short tankbar;
short save_userid_local;
char *userid;
int ascrate75;
int ascrate50;
int ascratestops;
int ascratelast6m;
int descrate;
int bottompo2;
int decopo2;
int proxy_type;
char *proxy_host;
int proxy_port;
short proxy_auth;
char *proxy_user;
char *proxy_pass;
bool doo2breaks;
bool drop_stone_mode;
int bottomsac;
int decosac;
bool show_pictures_in_profile;
bool use_default_file;
};
enum unit_system_values {
METRIC,
IMPERIAL,
PERSONALIZE
};
extern struct preferences prefs, default_prefs;
#define PP_GRAPHS_ENABLED (prefs.pp_graphs.po2 || prefs.pp_graphs.pn2 || prefs.pp_graphs.phe)
extern const char *system_divelist_default_font;
extern double system_divelist_default_font_size;
extern const char *system_default_filename();
extern bool subsurface_ignore_font(const char *font);
extern void subsurface_OS_pref_setup();
#ifdef __cplusplus
}
#endif
#endif // PREF_H