diff options
-rw-r--r-- | display-gtk.h | 8 | ||||
-rw-r--r-- | profile.c | 16 |
2 files changed, 19 insertions, 5 deletions
diff --git a/display-gtk.h b/display-gtk.h index ea4786b67..22ff9d626 100644 --- a/display-gtk.h +++ b/display-gtk.h @@ -27,6 +27,11 @@ typedef struct { gboolean phe; } enabled_graphs_t; +extern visible_cols_t visible_cols; +extern enabled_graphs_t enabled_graphs; + +#define GRAPHS_ENABLED (enabled_graphs.po2 || enabled_graphs.pn2 || enabled_graphs.phe) + typedef enum { PREF_BOOL, PREF_STRING @@ -59,9 +64,6 @@ extern void quit(GtkWidget *w, gpointer data); extern int is_default_dive_computer_device(const char *name); -extern visible_cols_t visible_cols; -extern enabled_graphs_t enabled_graphs; - extern const char *divelist_font; extern void set_divelist_font(const char *); @@ -220,16 +220,28 @@ static int get_maxtime(struct plot_info *pi) } } +/* get the maximum depth to which we want to plot + * take into account the additional verical space needed to plot + * partial pressure graphs */ static int get_maxdepth(struct plot_info *pi) { unsigned mm = pi->maxdepth; + int md; + if (zoomed_plot) { /* Rounded up to 10m, with at least 3m to spare */ - return ROUND_UP(mm+3000, 10000); + md = ROUND_UP(mm+3000, 10000); } else { /* Minimum 30m, rounded up to 10m, with at least 3m to spare */ - return MAX(30000, ROUND_UP(mm+3000, 10000)); + md = MAX(30000, ROUND_UP(mm+3000, 10000)); + } + if (GRAPHS_ENABLED) { + if (md <= 20000) + md += 10000; + else + md += ROUND_UP(md / 3, 10000); } + return md; } typedef struct { |