10 static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data)
12 struct dive *dive = dive_table.dives[selected_dive];
16 cr = gdk_cairo_create(widget->window);
17 cairo_set_source_rgb(cr, 0, 0, 0);
18 gdk_cairo_rectangle(cr, &event->area);
21 cairo_set_line_width(cr, 3);
22 cairo_set_source_rgb(cr, 1, 1, 1);
25 struct sample *sample = dive->sample;
26 cairo_move_to(cr, sample->time.seconds / 5, to_feet(sample->depth) * 3);
27 for (i = 1; i < dive->samples; i++) {
29 cairo_line_to(cr, sample->time.seconds / 5, to_feet(sample->depth) * 3);
39 GtkWidget *dive_profile_frame(void)
44 frame = gtk_frame_new("Dive profile");
45 gtk_widget_show(frame);
46 da = gtk_drawing_area_new();
47 gtk_widget_set_size_request(da, 450, 350);
48 g_signal_connect(da, "expose_event", G_CALLBACK(expose_event), NULL);
49 gtk_container_add(GTK_CONTAINER(frame), da);