summaryrefslogtreecommitdiffstats
path: root/profile.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-09-20 12:40:34 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-09-20 12:48:56 -0700
commit682135838ff313594c7f67fabd9be8f88a33883b (patch)
tree7fc1d8df51ce54f1529d6c50aa4d41f99283d463 /profile.c
parent6ea513246363ba2df29b0dfa9bc752c7d40c0c38 (diff)
downloadsubsurface-682135838ff313594c7f67fabd9be8f88a33883b.tar.gz
Separate out the UI from the program logic
The following are UI toolkit specific: gtk-gui.c - overall layout, main window of the UI divelist.c - list of dives subsurface maintains equipment.c - equipment / tank information for each dive info.c - detailed dive info print.c - printing The rest is independent of the UI: main.c i - program frame dive.c i - creates and maintaines the internal dive list structure libdivecomputer.c uemis.c parse-xml.c save-xml.c - interface with dive computers and the XML files profile.c - creates the data for the profile and draws it using cairo This commit should contain NO functional changes, just moving code around and a couple of minor abstractions. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'profile.c')
-rw-r--r--profile.c38
1 files changed, 5 insertions, 33 deletions
diff --git a/profile.c b/profile.c
index 9a9d98642..20317b937 100644
--- a/profile.c
+++ b/profile.c
@@ -1,3 +1,7 @@
+/* profile.c */
+/* creates all the necessary data for drawing the dive profile
+ * uses cairo to draw it
+ */
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
@@ -72,7 +76,7 @@ static void set_source_rgba(struct graphics_context *gc, double r, double g, dou
cairo_set_source_rgba(gc->cr, r, g, b, a);
}
-static void set_source_rgb(struct graphics_context *gc, double r, double g, double b)
+void set_source_rgb(struct graphics_context *gc, double r, double g, double b)
{
set_source_rgba(gc, r, g, b, 1);
}
@@ -741,35 +745,3 @@ void plot(struct graphics_context *gc, int w, int h, struct dive *dive)
cairo_stroke(gc->cr);
}
-
-static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data)
-{
- struct dive *dive = current_dive;
- struct graphics_context gc = { .printer = 0 };
- int w,h;
-
- w = widget->allocation.width;
- h = widget->allocation.height;
-
- gc.cr = gdk_cairo_create(widget->window);
- set_source_rgb(&gc, 0, 0, 0);
- cairo_paint(gc.cr);
-
- if (dive)
- plot(&gc, w, h, dive);
-
- cairo_destroy(gc.cr);
-
- return FALSE;
-}
-
-GtkWidget *dive_profile_widget(void)
-{
- GtkWidget *da;
-
- da = gtk_drawing_area_new();
- gtk_widget_set_size_request(da, 350, 250);
- g_signal_connect(da, "expose_event", G_CALLBACK(expose_event), NULL);
-
- return da;
-}