]> git.tdb.fi Git - ext/subsurface.git/blobdiff - profile.c
Separate out the UI from the program logic
[ext/subsurface.git] / profile.c
index 9a9d98642934bc308e12b0f0a9be7b5cb6497d0e..20317b93717704e922000528cf1b5060df1d7bd1 100644 (file)
--- 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;
-}