X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=info.c;h=6834b1645c81174001453fb849d6f818efed80c0;hb=6911229278cda9b59c1ef808c3b2bed7aff64336;hp=2aacec9a962b53bbba6a5d8aa917deea0541e14d;hpb=296642a63236ed4dbf72ba544164961cab51fcac;p=ext%2Fsubsurface.git diff --git a/info.c b/info.c index 2aacec9..6834b16 100644 --- a/info.c +++ b/info.c @@ -8,12 +8,15 @@ #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; static int divemaster_changed = 1, buddy_changed = 1; +#define EMPTY_AIRCONSUMPTION " \n " +#define AIRCON_WIDTH 20 + static const char *weekday(int wday) { static const char wday_array[7][4] = { @@ -63,22 +66,23 @@ void show_dive_info(struct dive *dive) struct tm *tm; char buffer[80]; char *text; - int len; if (!dive) { gtk_label_set_text(GTK_LABEL(depth), ""); gtk_label_set_text(GTK_LABEL(duration), ""); + gtk_label_set_text(GTK_LABEL(airconsumption), EMPTY_AIRCONSUMPTION); + gtk_label_set_width_chars(GTK_LABEL(airconsumption), AIRCON_WIDTH); return; } - + /* dive number and location (or lacking that, the date) go in the window title */ tm = gmtime(&dive->when); text = dive->location; if (!text) text = ""; if (*text) { - snprintf(buffer, sizeof(buffer), "%d. %s", dive->number, text); + snprintf(buffer, sizeof(buffer), "Dive #%d - %s", dive->number, text); } else { - snprintf(buffer, sizeof(buffer), "%d. %s %02d/%02d/%04d at %d:%02d", + snprintf(buffer, sizeof(buffer), "Dive #%d - %s %02d/%02d/%04d at %d:%02d", dive->number, weekday(tm->tm_wday), tm->tm_mon+1, tm->tm_mday, @@ -87,19 +91,16 @@ void show_dive_info(struct dive *dive) } text = buffer; if (!dive->number) - text += 3; /* Skip the "0. " part */ + text += 10; /* Skip the "Dive #0 - " part */ gtk_window_set_title(GTK_WINDOW(main_window), text); - len = 0; - if (dive->number) - len = snprintf(buffer, sizeof(buffer), "%d. ", dive->number); - snprintf(buffer, sizeof(buffer), "%d. %s %02d/%02d/%04d at %d:%02d", - dive->number, + /* the date goes in the frame label */ + snprintf(buffer, sizeof(buffer), "%s %02d/%02d/%04d at %d:%02d", weekday(tm->tm_wday), tm->tm_mon+1, tm->tm_mday, tm->tm_year+1900, tm->tm_hour, tm->tm_min); - gtk_frame_set_label(GTK_FRAME(info_frame), dive->number ? buffer : buffer+3); + gtk_frame_set_label(GTK_FRAME(info_frame), buffer); switch (output_units.length) { @@ -185,10 +186,23 @@ GtkWidget *dive_info_frame(void) 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); + gtk_misc_set_alignment(GTK_MISC(airconsumption), 1.0, 0.5); + gtk_label_set_width_chars(GTK_LABEL(airconsumption), AIRCON_WIDTH); return frame; } +void update_air_info(char *buffer) +{ + char markup[120]; + + if (! buffer) + buffer = EMPTY_AIRCONSUMPTION; + snprintf(markup, sizeof(markup), "%s",buffer); + gtk_label_set_markup(GTK_LABEL(airconsumption), markup); +} + static GtkEntry *text_entry(GtkWidget *box, const char *label) { GtkWidget *entry;