Add vertical space to depth plot if we are showing partial pressure graphs

Fairly simplistic change that modifies the way we calculate the "maxdepth"
for a particular dive as that is used to scale the plot vertically.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2012-11-01 11:44:18 -07:00
parent bdc6b6ba24
commit 01fd6a57bc
2 changed files with 19 additions and 5 deletions

View file

@ -27,6 +27,11 @@ typedef struct {
gboolean phe; gboolean phe;
} enabled_graphs_t; } 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 { typedef enum {
PREF_BOOL, PREF_BOOL,
PREF_STRING PREF_STRING
@ -59,9 +64,6 @@ extern void quit(GtkWidget *w, gpointer data);
extern int is_default_dive_computer_device(const char *name); 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 const char *divelist_font;
extern void set_divelist_font(const char *); extern void set_divelist_font(const char *);

View file

@ -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) static int get_maxdepth(struct plot_info *pi)
{ {
unsigned mm = pi->maxdepth; unsigned mm = pi->maxdepth;
int md;
if (zoomed_plot) { if (zoomed_plot) {
/* Rounded up to 10m, with at least 3m to spare */ /* Rounded up to 10m, with at least 3m to spare */
return ROUND_UP(mm+3000, 10000); md = ROUND_UP(mm+3000, 10000);
} else { } else {
/* Minimum 30m, rounded up to 10m, with at least 3m to spare */ /* 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 { typedef struct {