]> git.tdb.fi Git - ext/subsurface.git/blob - info.c
Make the main display saner
[ext/subsurface.git] / info.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 #include "dive.h"
6 #include "display.h"
7
8 static GtkWidget *datetime, *depth, *duration;
9
10 void update_dive_info(struct dive *dive)
11 {
12         struct tm *tm;
13         char buffer[80];
14
15         if (!dive) {
16                 gtk_entry_set_text(GTK_ENTRY(datetime), "no dive");
17                 gtk_entry_set_text(GTK_ENTRY(depth), "");
18                 gtk_entry_set_text(GTK_ENTRY(duration), "");
19                 return;
20         }
21
22         tm = gmtime(&dive->when);
23         snprintf(buffer, sizeof(buffer),
24                 "%04d-%02d-%02d "
25                 "%02d:%02d:%02d",
26                 tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
27                 tm->tm_hour, tm->tm_min, tm->tm_sec);
28         gtk_entry_set_text(GTK_ENTRY(datetime), buffer);
29
30         snprintf(buffer, sizeof(buffer),
31                 "%d ft",
32                 to_feet(dive->maxdepth));
33         gtk_entry_set_text(GTK_ENTRY(depth), buffer);
34
35         snprintf(buffer, sizeof(buffer),
36                 "%d min",
37                 dive->duration.seconds / 60);
38         gtk_entry_set_text(GTK_ENTRY(duration), buffer);
39 }
40
41 GtkWidget *dive_info_frame(void)
42 {
43         GtkWidget *frame;
44         GtkWidget *hbox;
45
46         frame = gtk_frame_new("Dive info");
47         gtk_widget_show(frame);
48
49         hbox = gtk_hbox_new(FALSE, 5);
50         gtk_container_add(GTK_CONTAINER(frame), hbox);
51
52         datetime = gtk_entry_new();
53         gtk_editable_set_editable(GTK_EDITABLE(datetime), FALSE);
54         gtk_box_pack_start(GTK_BOX(hbox), datetime, FALSE, FALSE, 0);
55
56         depth = gtk_entry_new();
57         gtk_editable_set_editable(GTK_EDITABLE(depth), FALSE);
58         gtk_box_pack_start(GTK_BOX(hbox), depth, FALSE, FALSE, 0);
59
60         duration = gtk_entry_new();
61         gtk_editable_set_editable(GTK_EDITABLE(duration), FALSE);
62         gtk_box_pack_start(GTK_BOX(hbox), duration, FALSE, FALSE, 0);
63
64         return frame;
65 }
66
67 GtkWidget *extended_dive_info_frame(void)
68 {
69         GtkWidget *frame;
70         GtkWidget *vbox;
71
72         frame = gtk_frame_new("Extended dive info");
73         gtk_widget_show(frame);
74
75         vbox = gtk_vbox_new(FALSE, 5);
76         gtk_container_add(GTK_CONTAINER(frame), vbox);
77
78         /* Add extended info here: name, description, yadda yadda */
79         update_dive_info(current_dive);
80         return frame;
81 }