#include "divelist.h"
static GtkWidget *info_frame;
-static GtkWidget *depth, *duration, *temperature;
+static GtkWidget *depth, *duration, *temperature, *airconsumption;
static GtkEntry *location, *buddy, *divemaster;
static GtkTextBuffer *notes;
static int location_changed = 1, notes_changed = 1;
if (!dive) {
gtk_label_set_text(GTK_LABEL(depth), "");
gtk_label_set_text(GTK_LABEL(duration), "");
+ gtk_label_set_text(GTK_LABEL(airconsumption), "");
return;
}
/* dive number and location (or lacking that, the date) go in the window title */
depth = info_label(hbox, "depth", GTK_JUSTIFY_RIGHT);
duration = info_label(hbox, "duration", GTK_JUSTIFY_RIGHT);
temperature = info_label(hbox, "temperature", GTK_JUSTIFY_RIGHT);
+ airconsumption = info_label(hbox, "air", GTK_JUSTIFY_RIGHT);
return frame;
}
+void update_air_info(char *buffer)
+{
+ char markup[120];
+
+ snprintf(markup, sizeof(markup), "<span font=\"8\">%s</span>",buffer);
+ gtk_label_set_markup(GTK_LABEL(airconsumption), markup);
+}
+
static GtkEntry *text_entry(GtkWidget *box, const char *label)
{
GtkWidget *entry;
{
text_render_options_t tro = {10, 0.2, 1.0, 0.2, RIGHT, BOTTOM};
const double liters_per_cuft = 28.317;
- const char *unit, *desc;
+ const char *unit, *format, *desc;
double airuse;
+ char buffer1[80];
+ char buffer2[80];
+ int len;
airuse = calculate_airuse(dive);
- if (!airuse)
+ if (!airuse) {
+ update_air_info("");
return;
-
- /* I really need to start addign some unit setting thing */
+ }
switch (output_units.volume) {
case LITER:
unit = "l";
+ format = "vol: %4.0f %s";
break;
case CUFT:
unit = "cuft";
+ format = "vol: %4.2f %s";
airuse /= liters_per_cuft;
break;
}
tro.vpos = -1.0;
- plot_text(gc, &tro, 0.98, 0.98, "vol: %4.2f %s", airuse, unit);
-
+ plot_text(gc, &tro, 0.98, 0.98, format, airuse, unit);
+ len = snprintf(buffer1, sizeof(buffer1), format, airuse, unit);
tro.vpos = -2.2;
if (dive->duration.seconds) {
double pressure = 1 + (dive->meandepth.mm / 10000.0);
double sac = airuse / pressure * 60 / dive->duration.seconds;
plot_text(gc, &tro, 0.98, 0.98, "SAC: %4.2f %s/min", sac, unit);
+ snprintf(buffer1+len, sizeof(buffer1)-len,
+ "\nSAC: %4.2f %s/min", sac, unit);
}
-
+ len = 0;
tro.vpos = -3.4;
desc = dive->cylinder[0].type.description;
if (desc || dive->cylinder[0].gasmix.o2.permille) {
if (!o2)
o2 = 21;
plot_text(gc, &tro, 0.98, 0.98, "%s (%d%%)", desc, o2);
+ len = snprintf(buffer2, sizeof(buffer2), "%s (%d%%): used ", desc, o2);
}
+ snprintf(buffer2+len, sizeof(buffer2)-len, buffer1);
+ update_air_info(buffer2);
}
static int mbar_to_PSI(int mbar)